home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1997-10-07 | 16.5 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| Jesper Olsen Module (music/jesperOlsen)
| magic
| Supported |
1%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Tue Oct 7 02:50:48 1997, modified Tue Oct 7 02:50:48 1997, creator 'MPS ', type ASCII, 16224 bytes "hqx.c" , at 0x3fe0 428 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
49%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
33%
| TrID
| TTComp archive compressed (bin-2K)
| default (weak)
| |
16%
| TrID
| MacBinary 2
| default (weak)
| |
0%
| TrID
| Sybase iAnywhere database files
| default (weak)
| |
100%
| dearkID
| deark: macbinary
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 05 68 71 78 2e 63 00 | 00 00 00 00 00 00 00 00 |..hqx.c.|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 3f 60 00 | 00 01 ac b0 5f 8c 48 b0 |.....?`.|...._.H.|
|00000060| 5f 8c 48 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |_.H.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 06 50 00 00 |........|.....P..|
|00000080| 0d 2f 2a 20 66 69 6c 65 | 20 68 71 78 2e 63 20 0d |./* file| hqx.c .|
|00000090| 09 42 69 6e 48 65 78 20 | 64 65 63 6f 64 65 72 2f |.BinHex |decoder/|
|000000a0| 65 6e 63 6f 64 65 72 20 | 72 6f 75 74 69 6e 65 73 |encoder |routines|
|000000b0| 2c 20 69 6d 70 6c 65 6d | 65 6e 74 61 74 69 6f 6e |, implem|entation|
|000000c0| 2e 0d 09 43 6f 70 79 72 | 69 67 68 74 20 28 63 29 |...Copyr|ight (c)|
|000000d0| 20 31 39 39 37 20 62 79 | 20 4a 6f 68 6e 20 4d 6f | 1997 by| John Mo|
|000000e0| 6e 74 62 72 69 61 6e 64 | 2e 20 20 41 6c 6c 20 52 |ntbriand|. All R|
|000000f0| 69 67 68 74 73 20 52 65 | 73 65 72 76 65 64 2e 0d |ights Re|served..|
|00000100| 09 50 65 72 6d 69 73 73 | 69 6f 6e 20 67 72 61 6e |.Permiss|ion gran|
|00000110| 74 65 64 20 66 6f 72 20 | 70 75 62 6c 69 63 20 75 |ted for |public u|
|00000120| 73 65 2e 0d 09 44 69 73 | 74 72 69 62 75 74 65 20 |se...Dis|tribute |
|00000130| 66 72 65 65 6c 79 20 69 | 6e 20 61 72 65 61 73 20 |freely i|n areas |
|00000140| 77 68 65 72 65 20 74 68 | 65 20 6c 61 77 73 20 6f |where th|e laws o|
|00000150| 66 20 63 6f 70 79 72 69 | 67 68 74 20 61 70 70 6c |f copyri|ght appl|
|00000160| 79 2e 0d 09 55 53 45 20 | 41 54 20 59 4f 55 52 20 |y...USE |AT YOUR |
|00000170| 4f 57 4e 20 52 49 53 4b | 2e 0d 09 44 4f 20 4e 4f |OWN RISK|...DO NO|
|00000180| 54 20 44 49 53 54 52 49 | 42 55 54 45 20 4d 4f 44 |T DISTRI|BUTE MOD|
|00000190| 49 46 49 45 44 20 43 4f | 50 49 45 53 2e 0d 09 43 |IFIED CO|PIES...C|
|000001a0| 6f 6d 6d 65 6e 74 73 2f | 71 75 65 73 74 69 6f 6e |omments/|question|
|000001b0| 73 2f 70 6f 73 74 63 61 | 72 64 73 20 74 6f 20 74 |s/postca|rds to t|
|000001c0| 68 65 20 61 75 74 68 6f | 72 20 61 74 20 74 68 65 |he autho|r at the|
|000001d0| 20 61 64 64 72 65 73 73 | 3a 0d 09 09 4a 6f 68 6e | address|:...John|
|000001e0| 20 4d 6f 6e 74 62 72 69 | 61 6e 64 0d 09 09 50 2e | Montbri|and...P.|
|000001f0| 4f 2e 20 42 6f 78 2e 20 | 31 31 33 33 0d 09 09 53 |O. Box. |1133...S|
|00000200| 61 73 6b 61 74 6f 6f 6e | 20 53 61 73 6b 61 74 63 |askatoon| Saskatc|
|00000210| 68 65 77 61 6e 20 43 61 | 6e 61 64 61 0d 09 09 53 |hewan Ca|nada...S|
|00000220| 37 4b 20 33 4e 32 0d 09 | 6f 72 20 62 79 20 65 6d |7K 3N2..|or by em|
|00000230| 61 69 6c 20 61 74 3a 0d | 09 09 74 69 6e 79 6a 6f |ail at:.|..tinyjo|
|00000240| 68 6e 40 73 6b 2e 73 79 | 6d 70 61 74 69 63 6f 2e |hn@sk.sy|mpatico.|
|00000250| 63 61 0d 09 49 66 20 79 | 6f 75 20 77 6f 75 6c 64 |ca..If y|ou would|
|00000260| 20 6c 69 6b 65 20 74 6f | 20 68 61 76 65 3a 0d 09 | like to| have:..|
|00000270| 09 74 65 63 68 6e 69 63 | 61 6c 20 73 75 70 70 6f |.technic|al suppo|
|00000280| 72 74 20 72 65 67 61 72 | 64 69 6e 67 20 74 68 69 |rt regar|ding thi|
|00000290| 73 20 66 69 6c 65 2c 20 | 73 65 6e 64 20 61 20 70 |s file, |send a p|
|000002a0| 6f 73 74 63 61 72 64 2e | 0d 09 73 65 65 20 61 6c |ostcard.|..see al|
|000002b0| 73 6f 3a 0d 09 09 68 74 | 74 70 3a 2f 2f 77 77 77 |so:...ht|tp://www|
|000002c0| 33 2e 73 6b 2e 73 79 6d | 70 61 74 69 63 6f 2e 63 |3.sk.sym|patico.c|
|000002d0| 61 2f 74 69 6e 79 6a 6f | 68 6e 0d 2a 2f 0d 0d 23 |a/tinyjo|hn.*/..#|
|000002e0| 69 6e 63 6c 75 64 65 20 | 22 68 71 78 2e 68 22 0d |include |"hqx.h".|
|000002f0| 23 69 6e 63 6c 75 64 65 | 20 3c 73 74 72 69 6e 67 |#include| <string|
|00000300| 2e 68 3e 0d 23 69 6e 63 | 6c 75 64 65 20 3c 45 72 |.h>.#inc|lude <Er|
|00000310| 72 6f 72 73 2e 68 3e 0d | 23 69 6e 63 6c 75 64 65 |rors.h>.|#include|
|00000320| 20 3c 54 65 78 74 55 74 | 69 6c 73 2e 68 3e 0d 23 | <TextUt|ils.h>.#|
|00000330| 69 6e 63 6c 75 64 65 20 | 3c 50 4c 53 74 72 69 6e |include |<PLStrin|
|00000340| 67 46 75 6e 63 73 2e 68 | 3e 0d 23 69 6e 63 6c 75 |gFuncs.h|>.#inclu|
|00000350| 64 65 20 3c 46 69 6e 64 | 65 72 2e 68 3e 0d 0d 09 |de <Find|er.h>...|
|00000360| 2f 2a 20 63 6f 6e 73 74 | 61 6e 74 73 20 2a 2f 0d |/* const|ants */.|
|00000370| 23 64 65 66 69 6e 65 20 | 6b 42 69 6e 48 65 78 4d |#define |kBinHexM|
|00000380| 61 67 69 63 20 30 78 31 | 30 32 31 0d 23 64 65 66 |agic 0x1|021.#def|
|00000390| 69 6e 65 20 6b 52 4c 45 | 46 6c 61 67 20 30 78 39 |ine kRLE|Flag 0x9|
|000003a0| 30 0d 23 64 65 66 69 6e | 65 20 6b 43 6f 70 79 42 |0.#defin|e kCopyB|
|000003b0| 75 66 4c 65 6e 20 34 30 | 39 36 0d 23 64 65 66 69 |ufLen 40|96.#defi|
|000003c0| 6e 65 20 48 54 20 28 28 | 63 68 61 72 29 20 39 29 |ne HT ((|char) 9)|
|000003d0| 20 2f 2a 20 68 6f 72 69 | 7a 6f 6e 74 61 6c 20 74 | /* hori|zontal t|
|000003e0| 61 62 20 2a 2f 0d 23 64 | 65 66 69 6e 65 20 4c 46 |ab */.#d|efine LF|
|000003f0| 20 28 28 63 68 61 72 29 | 20 31 30 29 20 2f 2a 20 | ((char)| 10) /* |
|00000400| 6c 69 6e 65 20 66 65 65 | 64 2c 20 6e 65 77 6c 69 |line fee|d, newli|
|00000410| 6e 65 20 2a 2f 0d 23 64 | 65 66 69 6e 65 20 43 52 |ne */.#d|efine CR|
|00000420| 20 28 28 63 68 61 72 29 | 20 31 33 29 20 2f 2a 20 | ((char)| 13) /* |
|00000430| 63 61 72 72 69 61 67 65 | 20 72 65 74 75 72 6e 20 |carriage| return |
|00000440| 2a 2f 0d 0d 09 2f 2a 20 | 74 79 70 65 73 20 2a 2f |*/.../* |types */|
|00000450| 0d 74 79 70 65 64 65 66 | 20 73 74 72 75 63 74 20 |.typedef| struct |
|00000460| 7b 0d 09 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |{..unsig|ned char|
|00000470| 20 66 49 6e 42 75 66 66 | 65 72 5b 34 2a 31 30 32 | fInBuff|er[4*102|
|00000480| 34 5d 3b 0d 09 75 6e 73 | 69 67 6e 65 64 20 63 68 |4];..uns|igned ch|
|00000490| 61 72 20 66 4f 75 74 42 | 75 66 66 65 72 5b 34 2a |ar fOutB|uffer[4*|
|000004a0| 31 30 32 34 5d 3b 0d 09 | 75 6e 73 69 67 6e 65 64 |1024];..|unsigned|
|000004b0| 20 63 68 61 72 20 2a 66 | 4f 75 74 42 75 66 70 3b | char *f|OutBufp;|
|000004c0| 0d 09 6c 6f 6e 67 20 66 | 42 69 74 42 75 66 66 65 |..long f|BitBuffe|
|000004d0| 72 2c 20 66 42 69 74 42 | 75 66 66 65 72 42 69 74 |r, fBitB|ufferBit|
|000004e0| 73 3b 0d 09 6c 6f 6e 67 | 20 66 4e 4f 75 74 43 68 |s;..long| fNOutCh|
|000004f0| 61 72 73 3b 0d 09 6c 6f | 6e 67 20 66 52 4c 45 43 |ars;..lo|ng fRLEC|
|00000500| 6f 75 6e 74 3b 0d 09 75 | 6e 73 69 67 6e 65 64 20 |ount;..u|nsigned |
|00000510| 63 68 61 72 20 66 52 4c | 45 43 68 61 72 61 63 74 |char fRL|ECharact|
|00000520| 65 72 3b 0d 09 75 6e 73 | 69 67 6e 65 64 20 73 68 |er;..uns|igned sh|
|00000530| 6f 72 74 20 66 43 52 43 | 3b 0d 09 48 51 58 53 69 |ort fCRC|;..HQXSi|
|00000540| 6e 6b 20 66 53 69 6e 6b | 3b 0d 09 6c 6f 6e 67 20 |nk fSink|;..long |
|00000550| 66 53 69 6e 6b 52 65 66 | 43 6f 6e 3b 0d 7d 20 48 |fSinkRef|Con;.} H|
|00000560| 51 58 45 6e 63 6f 64 65 | 56 61 72 73 2c 20 2a 48 |QXEncode|Vars, *H|
|00000570| 51 58 45 6e 63 56 61 72 | 73 50 74 72 3b 0d 0d 74 |QXEncVar|sPtr;..t|
|00000580| 79 70 65 64 65 66 20 73 | 74 72 75 63 74 20 7b 0d |ypedef s|truct {.|
|00000590| 09 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 66 |.unsigne|d char f|
|000005a0| 49 6e 42 75 66 66 65 72 | 5b 34 2a 31 30 32 34 5d |InBuffer|[4*1024]|
|000005b0| 3b 0d 09 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |;..unsig|ned char|
|000005c0| 20 66 4f 75 74 42 75 66 | 66 65 72 5b 34 2a 31 30 | fOutBuf|fer[4*10|
|000005d0| 32 34 5d 3b 0d 09 75 6e | 73 69 67 6e 65 64 20 63 |24];..un|signed c|
|000005e0| 68 61 72 20 2a 66 49 6e | 42 75 66 70 2c 20 2a 66 |har *fIn|Bufp, *f|
|000005f0| 49 6e 42 75 66 4d 61 78 | 3b 0d 09 6c 6f 6e 67 20 |InBufMax|;..long |
|00000600| 66 42 69 74 42 75 66 66 | 65 72 2c 20 66 42 69 74 |fBitBuff|er, fBit|
|00000610| 42 75 66 66 65 72 42 69 | 74 73 3b 0d 09 6c 6f 6e |BufferBi|ts;..lon|
|00000620| 67 20 66 52 4c 45 43 6f | 75 6e 74 3b 0d 09 75 6e |g fRLECo|unt;..un|
|00000630| 73 69 67 6e 65 64 20 63 | 68 61 72 20 66 52 4c 45 |signed c|har fRLE|
|00000640| 43 68 61 72 61 63 74 65 | 72 3b 0d 09 42 6f 6f 6c |Characte|r;..Bool|
|00000650| 65 61 6e 20 66 49 6e 48 | 71 78 44 61 74 61 3b 0d |ean fInH|qxData;.|
|00000660| 09 75 6e 73 69 67 6e 65 | 64 20 73 68 6f 72 74 20 |.unsigne|d short |
|00000670| 66 43 52 43 3b 0d 09 48 | 51 58 53 6f 75 72 63 65 |fCRC;..H|QXSource|
|00000680| 20 66 53 6f 75 72 63 65 | 3b 0d 09 6c 6f 6e 67 20 | fSource|;..long |
|00000690| 66 53 6f 75 72 63 65 52 | 65 66 43 6f 6e 3b 0d 7d |fSourceR|efCon;.}|
|000006a0| 20 48 51 58 44 65 63 6f | 64 65 56 61 72 73 2c 20 | HQXDeco|deVars, |
|000006b0| 2a 48 51 58 44 65 63 56 | 61 72 73 50 74 72 3b 0d |*HQXDecV|arsPtr;.|
|000006c0| 0d 09 2f 2a 20 67 6c 6f | 62 61 6c 73 20 2a 2f 0d |../* glo|bals */.|
|000006d0| 73 74 61 74 69 63 20 42 | 6f 6f 6c 65 61 6e 20 67 |static B|oolean g|
|000006e0| 48 51 58 69 6e 69 74 65 | 64 20 3d 20 66 61 6c 73 |HQXinite|d = fals|
|000006f0| 65 3b 0d 73 74 61 74 69 | 63 20 63 68 61 72 20 2a |e;.stati|c char *|
|00000700| 67 48 51 58 20 3d 20 22 | 21 5c 22 23 24 25 26 27 |gHQX = "|!\"#$%&'|
|00000710| 28 29 2a 2b 2c 2d 30 31 | 32 33 34 35 36 38 39 40 |()*+,-01|2345689@|
|00000720| 41 42 43 44 45 46 47 48 | 49 4a 4b 4c 4d 4e 50 51 |ABCDEFGH|IJKLMNPQ|
|00000730| 52 53 54 55 56 58 59 5a | 5b 60 61 62 63 64 65 66 |RSTUVXYZ|[`abcdef|
|00000740| 68 69 6a 6b 6c 6d 70 71 | 72 22 3b 0d 73 74 61 74 |hijklmpq|r";.stat|
|00000750| 69 63 20 73 68 6f 72 74 | 20 68 71 78 74 61 62 5b |ic short| hqxtab[|
|00000760| 32 35 36 5d 3b 0d 73 74 | 61 74 69 63 20 73 68 6f |256];.st|atic sho|
|00000770| 72 74 20 69 68 71 78 74 | 61 62 5b 32 35 36 5d 3b |rt ihqxt|ab[256];|
|00000780| 0d 73 74 61 74 69 63 20 | 75 6e 73 69 67 6e 65 64 |.static |unsigned|
|00000790| 20 73 68 6f 72 74 20 63 | 72 63 74 61 62 5b 32 35 | short c|rctab[25|
|000007a0| 36 5d 3b 0d 0d 0d 2f 2a | 20 43 52 43 20 43 41 4c |6];.../*| CRC CAL|
|000007b0| 43 55 4c 41 54 49 4f 4e | 20 2a 2f 0d 0d 73 74 61 |CULATION| */..sta|
|000007c0| 74 69 63 20 76 6f 69 64 | 20 42 75 69 6c 64 43 52 |tic void| BuildCR|
|000007d0| 43 54 61 62 6c 65 28 75 | 6e 73 69 67 6e 65 64 20 |CTable(u|nsigned |
|000007e0| 73 68 6f 72 74 20 6d 61 | 67 69 63 5f 6e 75 6d 62 |short ma|gic_numb|
|000007f0| 65 72 29 20 7b 0d 09 75 | 6e 73 69 67 6e 65 64 20 |er) {..u|nsigned |
|00000800| 6c 6f 6e 67 20 69 2c 20 | 6d 61 67 69 63 2c 20 6d |long i, |magic, m|
|00000810| 67 63 2c 20 76 61 6c 2c | 20 62 69 74 3b 0d 09 66 |gc, val,| bit;..f|
|00000820| 6f 72 20 28 69 20 3d 20 | 30 3b 20 69 20 3c 20 32 |or (i = |0; i < 2|
|00000830| 35 36 3b 20 69 2b 2b 29 | 20 7b 0d 09 09 6d 61 67 |56; i++)| {...mag|
|00000840| 69 63 20 3d 20 28 6d 61 | 67 69 63 5f 6e 75 6d 62 |ic = (ma|gic_numb|
|00000850| 65 72 20 3c 3c 20 38 29 | 3b 0d 09 09 6d 67 63 20 |er << 8)|;...mgc |
|00000860| 3d 20 28 6d 61 67 69 63 | 20 3e 3e 20 31 29 3b 0d |= (magic| >> 1);.|
|00000870| 09 09 76 61 6c 20 3d 20 | 28 69 20 3c 3c 20 31 36 |..val = |(i << 16|
|00000880| 29 3b 0d 09 09 66 6f 72 | 20 28 62 69 74 20 3d 20 |);...for| (bit = |
|00000890| 32 33 3b 20 62 69 74 20 | 3e 20 31 35 3b 20 62 69 |23; bit |> 15; bi|
|000008a0| 74 2d 2d 29 20 7b 0d 09 | 09 09 69 66 20 28 28 76 |t--) {..|..if ((v|
|000008b0| 61 6c 20 26 20 28 31 20 | 3c 3c 20 62 69 74 29 29 |al & (1 |<< bit))|
|000008c0| 20 21 3d 20 30 29 20 76 | 61 6c 20 5e 3d 20 6d 67 | != 0) v|al ^= mg|
|000008d0| 63 3b 0d 09 09 09 6d 67 | 63 20 3e 3e 3d 20 31 3b |c;....mg|c >>= 1;|
|000008e0| 0d 09 09 7d 0d 09 09 63 | 72 63 74 61 62 5b 69 5d |...}...c|rctab[i]|
|000008f0| 20 3d 20 76 61 6c 20 26 | 20 30 78 46 46 46 46 3b | = val &| 0xFFFF;|
|00000900| 0d 09 7d 0d 7d 0d 0d 73 | 74 61 74 69 63 20 75 6e |..}.}..s|tatic un|
|00000910| 73 69 67 6e 65 64 20 73 | 68 6f 72 74 20 69 6e 69 |signed s|hort ini|
|00000920| 74 69 61 6c 5f 63 72 63 | 28 76 6f 69 64 29 20 7b |tial_crc|(void) {|
|00000930| 0d 09 72 65 74 75 72 6e | 20 30 3b 0d 7d 0d 0d 73 |..return| 0;.}..s|
|00000940| 74 61 74 69 63 20 75 6e | 73 69 67 6e 65 64 20 73 |tatic un|signed s|
|00000950| 68 6f 72 74 20 63 72 63 | 5f 62 79 74 65 28 75 6e |hort crc|_byte(un|
|00000960| 73 69 67 6e 65 64 20 73 | 68 6f 72 74 20 63 72 63 |signed s|hort crc|
|00000970| 2c 20 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 20 |, unsign|ed char |
|00000980| 62 79 74 65 29 20 7b 0d | 09 72 65 74 75 72 6e 20 |byte) {.|.return |
|00000990| 28 20 28 63 72 63 74 61 | 62 5b 28 63 72 63 20 3e |( (crcta|b[(crc >|
|000009a0| 3e 20 38 29 20 26 20 32 | 35 35 5d 20 5e 20 28 28 |> 8) & 2|55] ^ ((|
|000009b0| 63 72 63 20 3c 3c 20 38 | 29 20 7c 20 62 79 74 65 |crc << 8|) | byte|
|000009c0| 29 29 20 26 20 30 78 46 | 46 46 46 20 29 3b 0d 7d |)) & 0xF|FFF );.}|
|000009d0| 0d 0d 73 74 61 74 69 63 | 20 75 6e 73 69 67 6e 65 |..static| unsigne|
|000009e0| 64 20 73 68 6f 72 74 20 | 63 72 63 5f 72 75 6e 28 |d short |crc_run(|
|000009f0| 75 6e 73 69 67 6e 65 64 | 20 73 68 6f 72 74 20 63 |unsigned| short c|
|00000a00| 72 63 2c 20 76 6f 69 64 | 2a 20 62 75 66 2c 20 6c |rc, void|* buf, l|
|00000a10| 6f 6e 67 20 6c 65 6e 29 | 20 7b 0d 09 75 6e 73 69 |ong len)| {..unsi|
|00000a20| 67 6e 65 64 20 63 68 61 | 72 20 2a 63 68 20 3d 20 |gned cha|r *ch = |
|00000a30| 62 75 66 3b 0d 09 6c 6f | 6e 67 20 69 3b 0d 09 75 |buf;..lo|ng i;..u|
|00000a40| 6e 73 69 67 6e 65 64 20 | 73 68 6f 72 74 20 63 72 |nsigned |short cr|
|00000a50| 63 76 20 3d 20 63 72 63 | 3b 0d 09 66 6f 72 20 28 |cv = crc|;..for (|
|00000a60| 69 20 3d 20 30 3b 20 69 | 20 3c 20 6c 65 6e 3b 20 |i = 0; i| < len; |
|00000a70| 69 2b 2b 29 0d 09 09 20 | 63 72 63 76 20 3d 20 28 |i++)... |crcv = (|
|00000a80| 63 72 63 74 61 62 5b 28 | 63 72 63 76 20 3e 3e 20 |crctab[(|crcv >> |
|00000a90| 38 29 20 26 20 32 35 35 | 5d 20 5e 20 28 28 63 72 |8) & 255|] ^ ((cr|
|00000aa0| 63 76 20 3c 3c 20 38 29 | 20 7c 20 28 2a 63 68 2b |cv << 8)| | (*ch+|
|00000ab0| 2b 29 29 29 20 26 20 30 | 78 46 46 46 46 3b 0d 09 |+))) & 0|xFFFF;..|
|00000ac0| 72 65 74 75 72 6e 20 63 | 72 63 76 3b 0d 7d 0d 0d |return c|rcv;.}..|
|00000ad0| 73 74 61 74 69 63 20 76 | 6f 69 64 20 48 51 58 49 |static v|oid HQXI|
|00000ae0| 6e 69 74 28 76 6f 69 64 | 29 20 7b 0d 09 69 66 20 |nit(void|) {..if |
|00000af0| 28 21 67 48 51 58 69 6e | 69 74 65 64 29 20 7b 0d |(!gHQXin|ited) {.|
|00000b00| 09 09 6c 6f 6e 67 20 69 | 2c 20 6e 3b 0d 09 09 66 |..long i|, n;...f|
|00000b10| 6f 72 20 28 69 20 3d 20 | 30 3b 69 20 3c 20 32 35 |or (i = |0;i < 25|
|00000b20| 36 3b 69 2b 2b 29 20 7b | 0d 09 09 09 68 71 78 74 |6;i++) {|....hqxt|
|00000b30| 61 62 5b 69 5d 20 3d 20 | 2d 31 3b 0d 09 09 09 69 |ab[i] = |-1;....i|
|00000b40| 68 71 78 74 61 62 5b 69 | 5d 20 3d 20 2d 31 3b 0d |hqxtab[i|] = -1;.|
|00000b50| 09 09 7d 0d 09 09 66 6f | 72 20 28 69 20 3d 20 30 |..}...fo|r (i = 0|
|00000b60| 2c 20 6e 20 3d 20 73 74 | 72 6c 65 6e 28 67 48 51 |, n = st|rlen(gHQ|
|00000b70| 58 29 3b 20 69 20 3c 20 | 6e 3b 20 69 2b 2b 29 20 |X); i < |n; i++) |
|00000b80| 7b 0d 09 09 09 68 71 78 | 74 61 62 5b 67 48 51 58 |{....hqx|tab[gHQX|
|00000b90| 5b 69 5d 5d 20 3d 20 69 | 3b 0d 09 09 09 69 68 71 |[i]] = i|;....ihq|
|00000ba0| 78 74 61 62 5b 69 5d 20 | 3d 20 67 48 51 58 5b 69 |xtab[i] |= gHQX[i|
|00000bb0| 5d 3b 0d 09 09 7d 0d 09 | 09 68 71 78 74 61 62 5b |];...}..|.hqxtab[|
|00000bc0| 43 52 5d 20 3d 20 2d 32 | 3b 0d 09 09 68 71 78 74 |CR] = -2|;...hqxt|
|00000bd0| 61 62 5b 4c 46 5d 20 3d | 20 2d 32 3b 0d 09 09 68 |ab[LF] =| -2;...h|
|00000be0| 71 78 74 61 62 5b 48 54 | 5d 20 3d 20 2d 32 3b 0d |qxtab[HT|] = -2;.|
|00000bf0| 09 09 68 71 78 74 61 62 | 5b 27 20 27 5d 20 3d 20 |..hqxtab|[' '] = |
|00000c00| 2d 32 3b 0d 09 09 68 71 | 78 74 61 62 5b 27 3a 27 |-2;...hq|xtab[':'|
|00000c10| 5d 20 3d 20 2d 33 3b 0d | 09 09 42 75 69 6c 64 43 |] = -3;.|..BuildC|
|00000c20| 52 43 54 61 62 6c 65 28 | 6b 42 69 6e 48 65 78 4d |RCTable(|kBinHexM|
|00000c30| 61 67 69 63 29 3b 0d 09 | 09 67 48 51 58 69 6e 69 |agic);..|.gHQXini|
|00000c40| 74 65 64 20 3d 20 74 72 | 75 65 3b 0d 09 7d 0d 7d |ted = tr|ue;..}.}|
|00000c50| 0d 0d 0d 2f 2a 20 42 55 | 46 46 45 52 45 44 20 4f |.../* BU|FFERED O|
|00000c60| 55 54 50 55 54 20 2a 2f | 0d 0d 0d 73 74 61 74 69 |UTPUT */|...stati|
|00000c70| 63 20 4f 53 45 72 72 20 | 42 55 46 46 57 72 69 74 |c OSErr |BUFFWrit|
|00000c80| 65 28 48 51 58 45 6e 63 | 56 61 72 73 50 74 72 20 |e(HQXEnc|VarsPtr |
|00000c90| 65 6e 63 76 2c 20 76 6f | 69 64 2a 20 62 75 66 66 |encv, vo|id* buff|
|00000ca0| 65 72 2c 20 6c 6f 6e 67 | 20 63 6f 75 6e 74 29 20 |er, long| count) |
|00000cb0| 7b 0d 09 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |{..unsig|ned char|
|00000cc0| 2a 20 63 68 3b 0d 09 6c | 6f 6e 67 20 69 3b 0d 09 |* ch;..l|ong i;..|
|00000cd0| 4f 53 45 72 72 20 65 72 | 72 3b 0d 09 63 68 20 3d |OSErr er|r;..ch =|
|00000ce0| 20 28 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 2a | (unsign|ed char*|
|00000cf0| 29 20 62 75 66 66 65 72 | 3b 0d 09 66 6f 72 20 28 |) buffer|;..for (|
|00000d00| 69 20 3d 20 30 3b 69 20 | 3c 20 63 6f 75 6e 74 3b |i = 0;i |< count;|
|00000d10| 69 2b 2b 29 20 7b 0d 09 | 09 69 66 20 28 65 6e 63 |i++) {..|.if (enc|
|00000d20| 76 2d 3e 66 4f 75 74 42 | 75 66 70 20 2d 20 65 6e |v->fOutB|ufp - en|
|00000d30| 63 76 2d 3e 66 4f 75 74 | 42 75 66 66 65 72 20 3d |cv->fOut|Buffer =|
|00000d40| 3d 20 73 69 7a 65 6f 66 | 28 65 6e 63 76 2d 3e 66 |= sizeof|(encv->f|
|00000d50| 4f 75 74 42 75 66 66 65 | 72 29 29 20 7b 0d 09 09 |OutBuffe|r)) {...|
|00000d60| 09 69 66 20 28 28 65 72 | 72 20 3d 20 65 6e 63 76 |.if ((er|r = encv|
|00000d70| 2d 3e 66 53 69 6e 6b 28 | 65 6e 63 76 2d 3e 66 4f |->fSink(|encv->fO|
|00000d80| 75 74 42 75 66 66 65 72 | 2c 20 73 69 7a 65 6f 66 |utBuffer|, sizeof|
|00000d90| 28 65 6e 63 76 2d 3e 66 | 4f 75 74 42 75 66 66 65 |(encv->f|OutBuffe|
|00000da0| 72 29 2c 20 65 6e 63 76 | 2d 3e 66 53 69 6e 6b 52 |r), encv|->fSinkR|
|00000db0| 65 66 43 6f 6e 29 29 20 | 21 3d 20 6e 6f 45 72 72 |efCon)) |!= noErr|
|00000dc0| 29 20 72 65 74 75 72 6e | 20 65 72 72 3b 0d 09 09 |) return| err;...|
|00000dd0| 09 65 6e 63 76 2d 3e 66 | 4f 75 74 42 75 66 70 20 |.encv->f|OutBufp |
|00000de0| 3d 20 65 6e 63 76 2d 3e | 66 4f 75 74 42 75 66 66 |= encv->|fOutBuff|
|00000df0| 65 72 3b 0d 09 09 7d 0d | 09 09 2a 65 6e 63 76 2d |er;...}.|..*encv-|
|00000e00| 3e 66 4f 75 74 42 75 66 | 70 2b 2b 20 3d 20 2a 63 |>fOutBuf|p++ = *c|
|00000e10| 68 2b 2b 3b 0d 09 7d 0d | 09 72 65 74 75 72 6e 20 |h++;..}.|.return |
|00000e20| 6e 6f 45 72 72 3b 0d 7d | 0d 0d 73 74 61 74 69 63 |noErr;.}|..static|
|00000e30| 20 4f 53 45 72 72 20 42 | 55 46 46 57 72 69 74 65 | OSErr B|UFFWrite|
|00000e40| 45 6e 64 28 48 51 58 45 | 6e 63 56 61 72 73 50 74 |End(HQXE|ncVarsPt|
|00000e50| 72 20 65 6e 63 76 29 20 | 7b 0d 09 69 66 20 28 65 |r encv) |{..if (e|
|00000e60| 6e 63 76 2d 3e 66 4f 75 | 74 42 75 66 70 20 2d 20 |ncv->fOu|tBufp - |
|00000e70| 65 6e 63 76 2d 3e 66 4f | 75 74 42 75 66 66 65 72 |encv->fO|utBuffer|
|00000e80| 20 3e 20 30 29 0d 09 09 | 72 65 74 75 72 6e 20 65 | > 0)...|return e|
|00000e90| 6e 63 76 2d 3e 66 53 69 | 6e 6b 28 65 6e 63 76 2d |ncv->fSi|nk(encv-|
|00000ea0| 3e 66 4f 75 74 42 75 66 | 66 65 72 2c 20 65 6e 63 |>fOutBuf|fer, enc|
|00000eb0| 76 2d 3e 66 4f 75 74 42 | 75 66 70 20 2d 20 65 6e |v->fOutB|ufp - en|
|00000ec0| 63 76 2d 3e 66 4f 75 74 | 42 75 66 66 65 72 2c 20 |cv->fOut|Buffer, |
|00000ed0| 65 6e 63 76 2d 3e 66 53 | 69 6e 6b 52 65 66 43 6f |encv->fS|inkRefCo|
|00000ee0| 6e 29 3b 0d 09 65 6c 73 | 65 20 72 65 74 75 72 6e |n);..els|e return|
|00000ef0| 20 6e 6f 45 72 72 3b 0d | 7d 0d 0d 0d 2f 2a 20 48 | noErr;.|}.../* H|
|00000f00| 51 58 20 4f 55 54 50 55 | 54 20 2a 2f 0d 0d 73 74 |QX OUTPU|T */..st|
|00000f10| 61 74 69 63 20 4f 53 45 | 72 72 20 48 51 58 57 72 |atic OSE|rr HQXWr|
|00000f20| 69 74 65 28 48 51 58 45 | 6e 63 56 61 72 73 50 74 |ite(HQXE|ncVarsPt|
|00000f30| 72 20 65 6e 63 76 2c 20 | 76 6f 69 64 2a 20 62 75 |r encv, |void* bu|
|00000f40| 66 66 65 72 2c 20 6c 6f | 6e 67 20 63 6f 75 6e 74 |ffer, lo|ng count|
|00000f50| 29 20 7b 0d 09 75 6e 73 | 69 67 6e 65 64 20 63 68 |) {..uns|igned ch|
|00000f60| 61 72 2a 20 63 68 2c 20 | 63 6f 64 65 3b 0d 09 6c |ar* ch, |code;..l|
|00000f70| 6f 6e 67 20 69 2c 20 76 | 3b 0d 09 4f 53 45 72 72 |ong i, v|;..OSErr|
|00000f80| 20 65 72 72 3b 0d 09 63 | 68 20 3d 20 28 75 6e 73 | err;..c|h = (uns|
|00000f90| 69 67 6e 65 64 20 63 68 | 61 72 2a 29 20 62 75 66 |igned ch|ar*) buf|
|00000fa0| 66 65 72 3b 0d 09 66 6f | 72 20 28 69 20 3d 20 30 |fer;..fo|r (i = 0|
|00000fb0| 3b 20 69 20 3c 20 63 6f | 75 6e 74 3b 20 69 2b 2b |; i < co|unt; i++|
|00000fc0| 2c 20 63 68 2b 2b 29 20 | 7b 0d 09 09 65 6e 63 76 |, ch++) |{...encv|
|00000fd0| 2d 3e 66 42 69 74 42 75 | 66 66 65 72 20 3d 20 28 |->fBitBu|ffer = (|
|00000fe0| 65 6e 63 76 2d 3e 66 42 | 69 74 42 75 66 66 65 72 |encv->fB|itBuffer|
|00000ff0| 20 3c 3c 20 38 29 20 7c | 20 28 28 2a 63 68 29 26 | << 8) || ((*ch)&|
|00001000| 32 35 35 29 3b 0d 09 09 | 65 6e 63 76 2d 3e 66 42 |255);...|encv->fB|
|00001010| 69 74 42 75 66 66 65 72 | 42 69 74 73 20 2b 3d 20 |itBuffer|Bits += |
|00001020| 38 3b 0d 09 09 77 68 69 | 6c 65 20 28 65 6e 63 76 |8;...whi|le (encv|
|00001030| 2d 3e 66 42 69 74 42 75 | 66 66 65 72 42 69 74 73 |->fBitBu|fferBits|
|00001040| 20 3e 3d 20 36 29 20 7b | 0d 09 09 09 76 20 3d 20 | >= 6) {|....v = |
|00001050| 28 65 6e 63 76 2d 3e 66 | 42 69 74 42 75 66 66 65 |(encv->f|BitBuffe|
|00001060| 72 20 3e 3e 20 28 65 6e | 63 76 2d 3e 66 42 69 74 |r >> (en|cv->fBit|
|00001070| 42 75 66 66 65 72 42 69 | 74 73 2d 36 29 29 20 26 |BufferBi|ts-6)) &|
|00001080| 20 30 78 30 30 33 46 3b | 0d 09 09 09 65 6e 63 76 | 0x003F;|....encv|
|00001090| 2d 3e 66 42 69 74 42 75 | 66 66 65 72 42 69 74 73 |->fBitBu|fferBits|
|000010a0| 20 2d 3d 20 36 3b 0d 09 | 09 09 63 6f 64 65 20 3d | -= 6;..|..code =|
|000010b0| 20 69 68 71 78 74 61 62 | 5b 76 5d 3b 0d 09 09 09 | ihqxtab|[v];....|
|000010c0| 69 66 20 28 28 65 72 72 | 20 3d 20 42 55 46 46 57 |if ((err| = BUFFW|
|000010d0| 72 69 74 65 28 65 6e 63 | 76 2c 20 26 63 6f 64 65 |rite(enc|v, &code|
|000010e0| 2c 20 31 29 29 20 21 3d | 20 6e 6f 45 72 72 29 20 |, 1)) !=| noErr) |
|000010f0| 72 65 74 75 72 6e 20 65 | 72 72 3b 0d 09 09 09 65 |return e|rr;....e|
|00001100| 6e 63 76 2d 3e 66 4e 4f | 75 74 43 68 61 72 73 2b |ncv->fNO|utChars+|
|00001110| 2b 3b 0d 09 09 09 69 66 | 20 28 28 65 6e 63 76 2d |+;....if| ((encv-|
|00001120| 3e 66 4e 4f 75 74 43 68 | 61 72 73 20 25 20 36 34 |>fNOutCh|ars % 64|
|00001130| 29 20 3d 3d 20 30 29 20 | 7b 0d 09 09 09 09 69 66 |) == 0) |{.....if|
|00001140| 20 28 28 65 72 72 20 3d | 20 42 55 46 46 57 72 69 | ((err =| BUFFWri|
|00001150| 74 65 28 65 6e 63 76 2c | 20 22 5c 6e 22 2c 20 31 |te(encv,| "\n", 1|
|00001160| 29 29 20 21 3d 20 6e 6f | 45 72 72 29 20 72 65 74 |)) != no|Err) ret|
|00001170| 75 72 6e 20 65 72 72 3b | 0d 09 09 09 7d 0d 09 09 |urn err;|....}...|
|00001180| 7d 0d 09 7d 0d 09 72 65 | 74 75 72 6e 20 6e 6f 45 |}..}..re|turn noE|
|00001190| 72 72 3b 0d 7d 0d 0d 73 | 74 61 74 69 63 20 4f 53 |rr;.}..s|tatic OS|
|000011a0| 45 72 72 20 48 51 58 57 | 72 69 74 65 45 6e 64 28 |Err HQXW|riteEnd(|
|000011b0| 48 51 58 45 6e 63 56 61 | 72 73 50 74 72 20 65 6e |HQXEncVa|rsPtr en|
|000011c0| 63 76 29 20 7b 0d 09 75 | 6e 73 69 67 6e 65 64 20 |cv) {..u|nsigned |
|000011d0| 63 68 61 72 20 63 6f 64 | 65 3b 0d 09 4f 53 45 72 |char cod|e;..OSEr|
|000011e0| 72 20 65 72 72 3b 0d 09 | 69 66 20 28 65 6e 63 76 |r err;..|if (encv|
|000011f0| 2d 3e 66 42 69 74 42 75 | 66 66 65 72 42 69 74 73 |->fBitBu|fferBits|
|00001200| 20 3e 20 30 29 20 7b 0d | 09 09 63 6f 64 65 20 3d | > 0) {.|..code =|
|00001210| 20 69 68 71 78 74 61 62 | 5b 65 6e 63 76 2d 3e 66 | ihqxtab|[encv->f|
|00001220| 42 69 74 42 75 66 66 65 | 72 3c 3c 28 36 2d 65 6e |BitBuffe|r<<(6-en|
|00001230| 63 76 2d 3e 66 42 69 74 | 42 75 66 66 65 72 42 69 |cv->fBit|BufferBi|
|00001240| 74 73 29 20 26 20 30 78 | 30 33 46 5d 3b 0d 09 09 |ts) & 0x|03F];...|
|00001250| 69 66 20 28 28 65 72 72 | 20 3d 20 42 55 46 46 57 |if ((err| = BUFFW|
|00001260| 72 69 74 65 28 65 6e 63 | 76 2c 20 26 63 6f 64 65 |rite(enc|v, &code|
|00001270| 2c 20 31 29 29 20 21 3d | 20 6e 6f 45 72 72 29 20 |, 1)) !=| noErr) |
|00001280| 72 65 74 75 72 6e 20 65 | 72 72 3b 0d 09 09 65 6e |return e|rr;...en|
|00001290| 63 76 2d 3e 66 4e 4f 75 | 74 43 68 61 72 73 2b 2b |cv->fNOu|tChars++|
|000012a0| 3b 0d 09 7d 0d 09 72 65 | 74 75 72 6e 20 42 55 46 |;..}..re|turn BUF|
|000012b0| 46 57 72 69 74 65 28 65 | 6e 63 76 2c 20 22 3a 5c |FWrite(e|ncv, ":\|
|000012c0| 6e 22 2c 20 32 29 3b 0d | 7d 0d 0d 0d 2f 2a 20 52 |n", 2);.|}.../* R|
|000012d0| 4c 45 20 4f 55 54 50 55 | 54 20 2a 2f 0d 0d 0d 73 |LE OUTPU|T */...s|
|000012e0| 74 61 74 69 63 20 4f 53 | 45 72 72 20 46 6c 75 73 |tatic OS|Err Flus|
|000012f0| 68 52 4c 45 28 48 51 58 | 45 6e 63 56 61 72 73 50 |hRLE(HQX|EncVarsP|
|00001300| 74 72 20 65 6e 63 76 29 | 20 7b 0d 09 6c 6f 6e 67 |tr encv)| {..long|
|00001310| 20 6e 3b 0d 09 4f 53 45 | 72 72 20 65 72 72 3b 0d | n;..OSE|rr err;.|
|00001320| 09 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 62 |.unsigne|d char b|
|00001330| 75 66 66 65 72 5b 31 30 | 5d 2c 20 2a 70 75 74 70 |uffer[10|], *putp|
|00001340| 3b 0d 09 77 68 69 6c 65 | 20 28 65 6e 63 76 2d 3e |;..while| (encv->|
|00001350| 66 52 4c 45 43 6f 75 6e | 74 20 3e 20 30 29 20 7b |fRLECoun|t > 0) {|
|00001360| 0d 09 09 6e 20 3d 20 65 | 6e 63 76 2d 3e 66 52 4c |...n = e|ncv->fRL|
|00001370| 45 43 6f 75 6e 74 20 3e | 20 32 35 35 20 3f 20 32 |ECount >| 255 ? 2|
|00001380| 35 35 20 3a 20 65 6e 63 | 76 2d 3e 66 52 4c 45 43 |55 : enc|v->fRLEC|
|00001390| 6f 75 6e 74 3b 0d 09 09 | 70 75 74 70 20 3d 20 62 |ount;...|putp = b|
|000013a0| 75 66 66 65 72 3b 0d 09 | 09 2a 70 75 74 70 2b 2b |uffer;..|.*putp++|
|000013b0| 20 3d 20 65 6e 63 76 2d | 3e 66 52 4c 45 43 68 61 | = encv-|>fRLECha|
|000013c0| 72 61 63 74 65 72 3b 0d | 09 09 69 66 20 28 65 6e |racter;.|..if (en|
|000013d0| 63 76 2d 3e 66 52 4c 45 | 43 68 61 72 61 63 74 65 |cv->fRLE|Characte|
|000013e0| 72 20 3d 3d 20 6b 52 4c | 45 46 6c 61 67 29 20 7b |r == kRL|EFlag) {|
|000013f0| 0d 09 09 09 2a 70 75 74 | 70 2b 2b 20 3d 20 30 3b |....*put|p++ = 0;|
|00001400| 09 2f 2a 20 6c 69 74 65 | 72 61 6c 20 66 6c 61 67 |./* lite|ral flag|
|00001410| 20 76 61 6c 75 65 20 2a | 2f 0d 09 09 09 69 66 20 | value *|/....if |
|00001420| 28 6e 20 3d 3d 20 32 29 | 20 7b 0d 09 09 09 09 2a |(n == 2)| {.....*|
|00001430| 70 75 74 70 2b 2b 20 3d | 20 6b 52 4c 45 46 6c 61 |putp++ =| kRLEFla|
|00001440| 67 3b 0d 09 09 09 09 2a | 70 75 74 70 2b 2b 20 3d |g;.....*|putp++ =|
|00001450| 20 30 3b 09 2f 2a 20 6c | 69 74 65 72 61 6c 20 66 | 0;./* l|iteral f|
|00001460| 6c 61 67 20 76 61 6c 75 | 65 20 2a 2f 0d 09 09 09 |lag valu|e */....|
|00001470| 7d 20 65 6c 73 65 20 69 | 66 20 28 6e 20 3e 20 32 |} else i|f (n > 2|
|00001480| 29 20 7b 0d 09 09 09 09 | 2a 70 75 74 70 2b 2b 20 |) {.....|*putp++ |
|00001490| 3d 20 6b 52 4c 45 46 6c | 61 67 3b 0d 09 09 09 09 |= kRLEFl|ag;.....|
|000014a0| 2a 70 75 74 70 2b 2b 20 | 3d 20 6e 3b 09 2f 2a 20 |*putp++ |= n;./* |
|000014b0| 72 65 70 65 61 74 20 63 | 6f 75 6e 74 20 2a 2f 0d |repeat c|ount */.|
|000014c0| 09 09 09 7d 0d 09 09 7d | 20 65 6c 73 65 20 7b 0d |...}...}| else {.|
|000014d0| 09 09 09 69 66 20 28 6e | 20 3d 3d 20 32 29 0d 09 |...if (n| == 2)..|
|000014e0| 09 09 09 2a 70 75 74 70 | 2b 2b 20 3d 20 65 6e 63 |...*putp|++ = enc|
|000014f0| 76 2d 3e 66 52 4c 45 43 | 68 61 72 61 63 74 65 72 |v->fRLEC|haracter|
|00001500| 3b 0d 09 09 09 65 6c 73 | 65 20 69 66 20 28 6e 20 |;....els|e if (n |
|00001510| 3d 3d 20 33 29 20 7b 0d | 09 09 09 09 2a 70 75 74 |== 3) {.|....*put|
|00001520| 70 2b 2b 20 3d 20 65 6e | 63 76 2d 3e 66 52 4c 45 |p++ = en|cv->fRLE|
|00001530| 43 68 61 72 61 63 74 65 | 72 3b 0d 09 09 09 09 2a |Characte|r;.....*|
|00001540| 70 75 74 70 2b 2b 20 3d | 20 65 6e 63 76 2d 3e 66 |putp++ =| encv->f|
|00001550| 52 4c 45 43 68 61 72 61 | 63 74 65 72 3b 0d 09 09 |RLEChara|cter;...|
|00001560| 09 7d 20 65 6c 73 65 20 | 69 66 20 28 6e 20 3e 20 |.} else |if (n > |
|00001570| 33 29 20 7b 0d 09 09 09 | 09 2a 70 75 74 70 2b 2b |3) {....|.*putp++|
|00001580| 20 3d 20 6b 52 4c 45 46 | 6c 61 67 3b 0d 09 09 09 | = kRLEF|lag;....|
|00001590| 09 2a 70 75 74 70 2b 2b | 20 3d 20 6e 3b 0d 09 09 |.*putp++| = n;...|
|000015a0| 09 7d 0d 09 09 7d 0d 09 | 09 69 66 20 28 28 65 72 |.}...}..|.if ((er|
|000015b0| 72 20 3d 20 48 51 58 57 | 72 69 74 65 28 65 6e 63 |r = HQXW|rite(enc|
|000015c0| 76 2c 20 62 75 66 66 65 | 72 2c 20 70 75 74 70 20 |v, buffe|r, putp |
|000015d0| 2d 20 62 75 66 66 65 72 | 29 29 20 21 3d 20 6e 6f |- buffer|)) != no|
|000015e0| 45 72 72 29 20 72 65 74 | 75 72 6e 20 65 72 72 3b |Err) ret|urn err;|
|000015f0| 0d 09 09 65 6e 63 76 2d | 3e 66 52 4c 45 43 6f 75 |...encv-|>fRLECou|
|00001600| 6e 74 20 2d 3d 20 6e 3b | 0d 09 7d 0d 09 72 65 74 |nt -= n;|..}..ret|
|00001610| 75 72 6e 20 65 72 72 3b | 0d 7d 0d 0d 73 74 61 74 |urn err;|.}..stat|
|00001620| 69 63 20 4f 53 45 72 72 | 20 52 4c 45 57 72 69 74 |ic OSErr| RLEWrit|
|00001630| 65 28 48 51 58 45 6e 63 | 56 61 72 73 50 74 72 20 |e(HQXEnc|VarsPtr |
|00001640| 65 6e 63 76 2c 20 76 6f | 69 64 2a 20 62 75 66 66 |encv, vo|id* buff|
|00001650| 65 72 2c 20 6c 6f 6e 67 | 20 63 6f 75 6e 74 29 20 |er, long| count) |
|00001660| 7b 0d 09 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |{..unsig|ned char|
|00001670| 20 2a 63 68 3b 0d 09 6c | 6f 6e 67 20 69 3b 0d 09 | *ch;..l|ong i;..|
|00001680| 4f 53 45 72 72 20 65 72 | 72 3b 0d 09 63 68 20 3d |OSErr er|r;..ch =|
|00001690| 20 28 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 2a | (unsign|ed char*|
|000016a0| 29 20 62 75 66 66 65 72 | 3b 0d 09 65 72 72 20 3d |) buffer|;..err =|
|000016b0| 20 6e 6f 45 72 72 3b 0d | 09 66 6f 72 20 28 63 68 | noErr;.|.for (ch|
|000016c0| 20 3d 20 28 75 6e 73 69 | 67 6e 65 64 20 63 68 61 | = (unsi|gned cha|
|000016d0| 72 2a 29 20 62 75 66 66 | 65 72 2c 20 69 20 3d 20 |r*) buff|er, i = |
|000016e0| 30 3b 20 69 20 3c 20 63 | 6f 75 6e 74 3b 20 69 2b |0; i < c|ount; i+|
|000016f0| 2b 2c 20 63 68 2b 2b 29 | 20 7b 0d 09 09 69 66 20 |+, ch++)| {...if |
|00001700| 28 65 6e 63 76 2d 3e 66 | 52 4c 45 43 6f 75 6e 74 |(encv->f|RLECount|
|00001710| 20 3d 3d 20 30 29 20 7b | 0d 09 09 09 65 6e 63 76 | == 0) {|....encv|
|00001720| 2d 3e 66 52 4c 45 43 68 | 61 72 61 63 74 65 72 20 |->fRLECh|aracter |
|00001730| 3d 20 2a 63 68 3b 0d 09 | 09 09 65 6e 63 76 2d 3e |= *ch;..|..encv->|
|00001740| 66 52 4c 45 43 6f 75 6e | 74 20 3d 20 31 3b 0d 09 |fRLECoun|t = 1;..|
|00001750| 09 7d 20 65 6c 73 65 20 | 69 66 20 28 2a 63 68 20 |.} else |if (*ch |
|00001760| 3d 3d 20 65 6e 63 76 2d | 3e 66 52 4c 45 43 68 61 |== encv-|>fRLECha|
|00001770| 72 61 63 74 65 72 29 0d | 09 09 09 65 6e 63 76 2d |racter).|...encv-|
|00001780| 3e 66 52 4c 45 43 6f 75 | 6e 74 20 2b 3d 20 31 3b |>fRLECou|nt += 1;|
|00001790| 0d 09 09 65 6c 73 65 20 | 7b 0d 09 09 09 69 66 20 |...else |{....if |
|000017a0| 28 28 65 72 72 20 3d 20 | 46 6c 75 73 68 52 4c 45 |((err = |FlushRLE|
|000017b0| 28 65 6e 63 76 29 29 20 | 21 3d 20 6e 6f 45 72 72 |(encv)) |!= noErr|
|000017c0| 29 20 72 65 74 75 72 6e | 20 65 72 72 3b 0d 09 09 |) return| err;...|
|000017d0| 09 65 6e 63 76 2d 3e 66 | 52 4c 45 43 68 61 72 61 |.encv->f|RLEChara|
|000017e0| 63 74 65 72 20 3d 20 2a | 63 68 3b 0d 09 09 09 65 |cter = *|ch;....e|
|000017f0| 6e 63 76 2d 3e 66 52 4c | 45 43 6f 75 6e 74 20 3d |ncv->fRL|ECount =|
|00001800| 20 31 3b 0d 09 09 7d 0d | 09 7d 0d 09 72 65 74 75 | 1;...}.|.}..retu|
|00001810| 72 6e 20 65 72 72 3b 0d | 7d 0d 0d 73 74 61 74 69 |rn err;.|}..stati|
|00001820| 63 20 4f 53 45 72 72 20 | 52 4c 45 57 72 69 74 65 |c OSErr |RLEWrite|
|00001830| 45 6e 64 28 48 51 58 45 | 6e 63 56 61 72 73 50 74 |End(HQXE|ncVarsPt|
|00001840| 72 20 65 6e 63 76 29 20 | 7b 0d 09 4f 53 45 72 72 |r encv) |{..OSErr|
|00001850| 20 65 72 72 3b 0d 09 69 | 66 20 28 28 65 72 72 20 | err;..i|f ((err |
|00001860| 3d 20 46 6c 75 73 68 52 | 4c 45 28 65 6e 63 76 29 |= FlushR|LE(encv)|
|00001870| 29 20 21 3d 20 6e 6f 45 | 72 72 29 20 72 65 74 75 |) != noE|rr) retu|
|00001880| 72 6e 20 65 72 72 3b 0d | 09 69 66 20 28 28 65 72 |rn err;.|.if ((er|
|00001890| 72 20 3d 20 48 51 58 57 | 72 69 74 65 45 6e 64 28 |r = HQXW|riteEnd(|
|000018a0| 65 6e 63 76 29 29 20 21 | 3d 20 6e 6f 45 72 72 29 |encv)) !|= noErr)|
|000018b0| 20 72 65 74 75 72 6e 20 | 65 72 72 3b 0d 09 72 65 | return |err;..re|
|000018c0| 74 75 72 6e 20 42 55 46 | 46 57 72 69 74 65 45 6e |turn BUF|FWriteEn|
|000018d0| 64 28 65 6e 63 76 29 3b | 0d 7d 0d 0d 0d 73 74 61 |d(encv);|.}...sta|
|000018e0| 74 69 63 20 4f 53 45 72 | 72 20 57 72 69 74 65 72 |tic OSEr|r Writer|
|000018f0| 49 6e 69 74 28 48 51 58 | 45 6e 63 56 61 72 73 50 |Init(HQX|EncVarsP|
|00001900| 74 72 20 65 6e 63 76 2c | 20 48 51 58 53 69 6e 6b |tr encv,| HQXSink|
|00001910| 20 64 73 74 2c 20 6c 6f | 6e 67 20 72 65 66 63 6f | dst, lo|ng refco|
|00001920| 6e 29 20 7b 0d 09 4f 53 | 45 72 72 20 65 72 72 3b |n) {..OS|Err err;|
|00001930| 0d 09 63 68 61 72 20 2a | 70 3b 0d 09 70 20 3d 20 |..char *|p;..p = |
|00001940| 22 28 54 68 69 73 20 66 | 69 6c 65 20 6d 75 73 74 |"(This f|ile must|
|00001950| 20 62 65 20 63 6f 6e 76 | 65 72 74 65 64 20 77 69 | be conv|erted wi|
|00001960| 74 68 20 42 69 6e 48 65 | 78 20 34 2e 30 29 5c 6e |th BinHe|x 4.0)\n|
|00001970| 3a 22 3b 0d 09 65 6e 63 | 76 2d 3e 66 52 4c 45 43 |:";..enc|v->fRLEC|
|00001980| 6f 75 6e 74 20 3d 20 30 | 3b 0d 09 65 6e 63 76 2d |ount = 0|;..encv-|
|00001990| 3e 66 4f 75 74 42 75 66 | 70 20 3d 20 65 6e 63 76 |>fOutBuf|p = encv|
|000019a0| 2d 3e 66 4f 75 74 42 75 | 66 66 65 72 3b 0d 09 65 |->fOutBu|ffer;..e|
|000019b0| 6e 63 76 2d 3e 66 53 69 | 6e 6b 20 3d 20 64 73 74 |ncv->fSi|nk = dst|
|000019c0| 3b 0d 09 65 6e 63 76 2d | 3e 66 53 69 6e 6b 52 65 |;..encv-|>fSinkRe|
|000019d0| 66 43 6f 6e 20 3d 20 72 | 65 66 63 6f 6e 3b 0d 09 |fCon = r|efcon;..|
|000019e0| 69 66 20 28 28 65 72 72 | 20 3d 20 42 55 46 46 57 |if ((err| = BUFFW|
|000019f0| 72 69 74 65 28 65 6e 63 | 76 2c 20 70 2c 20 73 74 |rite(enc|v, p, st|
|00001a00| 72 6c 65 6e 28 70 29 29 | 29 20 21 3d 20 6e 6f 45 |rlen(p))|) != noE|
|00001a10| 72 72 29 20 72 65 74 75 | 72 6e 20 65 72 72 3b 0d |rr) retu|rn err;.|
|00001a20| 09 65 6e 63 76 2d 3e 66 | 4e 4f 75 74 43 68 61 72 |.encv->f|NOutChar|
|00001a30| 73 20 3d 20 31 3b 0d 09 | 65 6e 63 76 2d 3e 66 42 |s = 1;..|encv->fB|
|00001a40| 69 74 42 75 66 66 65 72 | 20 3d 20 65 6e 63 76 2d |itBuffer| = encv-|
|00001a50| 3e 66 42 69 74 42 75 66 | 66 65 72 42 69 74 73 20 |>fBitBuf|ferBits |
|00001a60| 3d 20 30 3b 0d 09 72 65 | 74 75 72 6e 20 6e 6f 45 |= 0;..re|turn noE|
|00001a70| 72 72 3b 0d 7d 0d 0d 2f | 2a 20 43 52 43 20 4f 55 |rr;.}../|* CRC OU|
|00001a80| 54 50 55 54 20 2a 2f 0d | 0d 0d 73 74 61 74 69 63 |TPUT */.|..static|
|00001a90| 20 4f 53 45 72 72 20 43 | 52 43 57 72 69 74 65 49 | OSErr C|RCWriteI|
|00001aa0| 6e 69 74 28 48 51 58 45 | 6e 63 56 61 72 73 50 74 |nit(HQXE|ncVarsPt|
|00001ab0| 72 20 65 6e 63 76 29 20 | 7b 0d 09 65 6e 63 76 2d |r encv) |{..encv-|
|00001ac0| 3e 66 43 52 43 20 3d 20 | 69 6e 69 74 69 61 6c 5f |>fCRC = |initial_|
|00001ad0| 63 72 63 28 29 3b 0d 09 | 72 65 74 75 72 6e 20 6e |crc();..|return n|
|00001ae0| 6f 45 72 72 3b 0d 7d 0d | 0d 73 74 61 74 69 63 20 |oErr;.}.|.static |
|00001af0| 4f 53 45 72 72 20 43 52 | 43 57 72 69 74 65 28 48 |OSErr CR|CWrite(H|
|00001b00| 51 58 45 6e 63 56 61 72 | 73 50 74 72 20 65 6e 63 |QXEncVar|sPtr enc|
|00001b10| 76 2c 20 76 6f 69 64 2a | 20 62 75 66 66 65 72 2c |v, void*| buffer,|
|00001b20| 20 6c 6f 6e 67 20 63 6f | 75 6e 74 29 20 7b 0d 09 | long co|unt) {..|
|00001b30| 65 6e 63 76 2d 3e 66 43 | 52 43 20 3d 20 63 72 63 |encv->fC|RC = crc|
|00001b40| 5f 72 75 6e 28 65 6e 63 | 76 2d 3e 66 43 52 43 2c |_run(enc|v->fCRC,|
|00001b50| 20 62 75 66 66 65 72 2c | 20 63 6f 75 6e 74 29 3b | buffer,| count);|
|00001b60| 0d 09 72 65 74 75 72 6e | 20 52 4c 45 57 72 69 74 |..return| RLEWrit|
|00001b70| 65 28 65 6e 63 76 2c 20 | 62 75 66 66 65 72 2c 20 |e(encv, |buffer, |
|00001b80| 63 6f 75 6e 74 29 3b 0d | 7d 0d 0d 73 74 61 74 69 |count);.|}..stati|
|00001b90| 63 20 4f 53 45 72 72 20 | 43 52 43 57 72 69 74 65 |c OSErr |CRCWrite|
|00001ba0| 45 6e 64 28 48 51 58 45 | 6e 63 56 61 72 73 50 74 |End(HQXE|ncVarsPt|
|00001bb0| 72 20 65 6e 63 76 29 20 | 7b 0d 09 65 6e 63 76 2d |r encv) |{..encv-|
|00001bc0| 3e 66 43 52 43 20 3d 20 | 63 72 63 5f 62 79 74 65 |>fCRC = |crc_byte|
|00001bd0| 28 65 6e 63 76 2d 3e 66 | 43 52 43 2c 20 30 29 3b |(encv->f|CRC, 0);|
|00001be0| 0d 09 65 6e 63 76 2d 3e | 66 43 52 43 20 3d 20 63 |..encv->|fCRC = c|
|00001bf0| 72 63 5f 62 79 74 65 28 | 65 6e 63 76 2d 3e 66 43 |rc_byte(|encv->fC|
|00001c00| 52 43 2c 20 30 29 3b 0d | 09 72 65 74 75 72 6e 20 |RC, 0);.|.return |
|00001c10| 52 4c 45 57 72 69 74 65 | 28 65 6e 63 76 2c 20 26 |RLEWrite|(encv, &|
|00001c20| 65 6e 63 76 2d 3e 66 43 | 52 43 2c 20 32 29 3b 0d |encv->fC|RC, 2);.|
|00001c30| 7d 0d 0d 0d 4f 53 45 72 | 72 20 48 51 58 45 6e 63 |}...OSEr|r HQXEnc|
|00001c40| 6f 64 65 28 53 74 72 69 | 6e 67 50 74 72 20 6e 61 |ode(Stri|ngPtr na|
|00001c50| 6d 65 2c 20 73 68 6f 72 | 74 20 76 6f 6c 2c 20 6c |me, shor|t vol, l|
|00001c60| 6f 6e 67 20 64 69 72 2c | 20 48 51 58 53 69 6e 6b |ong dir,| HQXSink|
|00001c70| 20 64 73 74 2c 20 6c 6f | 6e 67 20 72 65 66 63 6f | dst, lo|ng refco|
|00001c80| 6e 29 20 7b 0d 09 4f 53 | 45 72 72 20 65 72 72 3b |n) {..OS|Err err;|
|00001c90| 0d 09 6c 6f 6e 67 20 7a | 65 72 6f 2c 20 62 79 74 |..long z|ero, byt|
|00001ca0| 65 63 6f 75 6e 74 2c 20 | 61 63 74 63 6f 75 6e 74 |ecount, |actcount|
|00001cb0| 3b 0d 09 73 68 6f 72 74 | 20 72 65 66 6e 75 6d 3b |;..short| refnum;|
|00001cc0| 0d 09 48 50 61 72 61 6d | 42 6c 6f 63 6b 52 65 63 |..HParam|BlockRec|
|00001cd0| 20 70 62 3b 0d 09 48 51 | 58 45 6e 63 56 61 72 73 | pb;..HQ|XEncVars|
|00001ce0| 50 74 72 20 65 6e 63 76 | 3b 0d 09 0d 09 09 2f 2a |Ptr encv|;...../*|
|00001cf0| 20 73 65 74 20 75 70 20 | 2a 2f 0d 09 7a 65 72 6f | set up |*/..zero|
|00001d00| 20 3d 20 30 3b 0d 09 72 | 65 66 6e 75 6d 20 3d 20 | = 0;..r|efnum = |
|00001d10| 30 3b 0d 09 65 6e 63 76 | 20 3d 20 4e 55 4c 4c 3b |0;..encv| = NULL;|
|00001d20| 0d 09 48 51 58 49 6e 69 | 74 28 29 3b 0d 09 65 6e |..HQXIni|t();..en|
|00001d30| 63 76 20 3d 20 28 48 51 | 58 45 6e 63 56 61 72 73 |cv = (HQ|XEncVars|
|00001d40| 50 74 72 29 20 4e 65 77 | 50 74 72 43 6c 65 61 72 |Ptr) New|PtrClear|
|00001d50| 28 73 69 7a 65 6f 66 28 | 48 51 58 45 6e 63 6f 64 |(sizeof(|HQXEncod|
|00001d60| 65 56 61 72 73 29 29 3b | 0d 09 69 66 20 28 28 65 |eVars));|..if ((e|
|00001d70| 72 72 20 3d 20 4d 65 6d | 45 72 72 6f 72 28 29 29 |rr = Mem|Error())|
|00001d80| 20 21 3d 20 6e 6f 45 72 | 72 29 20 67 6f 74 6f 20 | != noEr|r) goto |
|00001d90| 62 61 69 6c 3b 0d 09 65 | 6e 63 76 2d 3e 66 52 4c |bail;..e|ncv->fRL|
|00001da0| 45 43 6f 75 6e 74 20 3d | 20 30 3b 0d 09 0d 09 65 |ECount =| 0;....e|
|00001db0| 72 72 20 3d 20 57 72 69 | 74 65 72 49 6e 69 74 28 |rr = Wri|terInit(|
|00001dc0| 65 6e 63 76 2c 20 64 73 | 74 2c 20 72 65 66 63 6f |encv, ds|t, refco|
|00001dd0| 6e 29 3b 0d 09 69 66 20 | 28 65 72 72 20 21 3d 20 |n);..if |(err != |
|00001de0| 6e 6f 45 72 72 29 20 67 | 6f 74 6f 20 62 61 69 6c |noErr) g|oto bail|
|00001df0| 3b 0d 0d 09 09 2f 2a 20 | 68 71 78 20 66 69 6c 65 |;..../* |hqx file|
|00001e00| 20 68 65 61 64 65 72 20 | 2a 2f 0d 09 65 72 72 20 | header |*/..err |
|00001e10| 3d 20 43 52 43 57 72 69 | 74 65 49 6e 69 74 28 65 |= CRCWri|teInit(e|
|00001e20| 6e 63 76 29 3b 0d 09 69 | 66 20 28 65 72 72 20 21 |ncv);..i|f (err !|
|00001e30| 3d 20 6e 6f 45 72 72 29 | 20 67 6f 74 6f 20 62 61 |= noErr)| goto ba|
|00001e40| 69 6c 3b 0d 09 09 6d 65 | 6d 73 65 74 28 26 70 62 |il;...me|mset(&pb|
|00001e50| 2c 20 30 2c 20 73 69 7a | 65 6f 66 28 70 62 29 29 |, 0, siz|eof(pb))|
|00001e60| 3b 0d 09 09 70 62 2e 66 | 69 6c 65 50 61 72 61 6d |;...pb.f|ileParam|
|00001e70| 2e 69 6f 4e 61 6d 65 50 | 74 72 20 3d 20 6e 61 6d |.ioNameP|tr = nam|
|00001e80| 65 3b 0d 09 09 70 62 2e | 66 69 6c 65 50 61 72 61 |e;...pb.|filePara|
|00001e90| 6d 2e 69 6f 44 69 72 49 | 44 20 3d 20 64 69 72 3b |m.ioDirI|D = dir;|
|00001ea0| 0d 09 09 70 62 2e 66 69 | 6c 65 50 61 72 61 6d 2e |...pb.fi|leParam.|
|00001eb0| 69 6f 56 52 65 66 4e 75 | 6d 20 3d 20 76 6f 6c 3b |ioVRefNu|m = vol;|
|00001ec0| 0d 09 09 70 62 2e 66 69 | 6c 65 50 61 72 61 6d 2e |...pb.fi|leParam.|
|00001ed0| 69 6f 46 44 69 72 49 6e | 64 65 78 20 3d 20 30 3b |ioFDirIn|dex = 0;|
|00001ee0| 0d 09 09 70 62 2e 66 69 | 6c 65 50 61 72 61 6d 2e |...pb.fi|leParam.|
|00001ef0| 69 6f 46 56 65 72 73 4e | 75 6d 20 3d 20 30 3b 0d |ioFVersN|um = 0;.|
|00001f00| 09 09 65 72 72 20 3d 20 | 50 42 48 47 65 74 46 49 |..err = |PBHGetFI|
|00001f10| 6e 66 6f 53 79 6e 63 28 | 26 70 62 29 3b 0d 09 09 |nfoSync(|&pb);...|
|00001f20| 69 66 20 28 65 72 72 20 | 21 3d 20 6e 6f 45 72 72 |if (err |!= noErr|
|00001f30| 29 20 67 6f 74 6f 20 62 | 61 69 6c 3b 0d 09 09 65 |) goto b|ail;...e|
|00001f40| 72 72 20 3d 20 43 52 43 | 57 72 69 74 65 28 65 6e |rr = CRC|Write(en|
|00001f50| 63 76 2c 20 6e 61 6d 65 | 2c 20 2a 6e 61 6d 65 20 |cv, name|, *name |
|00001f60| 2b 20 31 29 3b 0d 09 09 | 69 66 20 28 65 72 72 20 |+ 1);...|if (err |
|00001f70| 21 3d 20 6e 6f 45 72 72 | 29 20 67 6f 74 6f 20 62 |!= noErr|) goto b|
|00001f80| 61 69 6c 3b 0d 09 09 65 | 72 72 20 3d 20 43 52 43 |ail;...e|rr = CRC|
|00001f90| 57 72 69 74 65 28 65 6e | 63 76 2c 20 26 7a 65 72 |Write(en|cv, &zer|
|00001fa0| 6f 2c 20 31 29 3b 0d 09 | 09 69 66 20 28 65 72 72 |o, 1);..|.if (err|
|00001fb0| 20 21 3d 20 6e 6f 45 72 | 72 29 20 67 6f 74 6f 20 | != noEr|r) goto |
|00001fc0| 62 61 69 6c 3b 0d 09 09 | 65 72 72 20 3d 20 43 52 |bail;...|err = CR|
|00001fd0| 43 57 72 69 74 65 28 65 | 6e 63 76 2c 20 26 70 62 |CWrite(e|ncv, &pb|
|00001fe0| 2e 66 69 6c 65 50 61 72 | 61 6d 2e 69 6f 46 6c 46 |.filePar|am.ioFlF|
|00001ff0| 6e 64 72 49 6e 66 6f 2c | 20 31 30 29 3b 0d 09 09 |ndrInfo,| 10);...|
|00002000| 69 66 20 28 65 72 72 20 | 21 3d 20 6e 6f 45 72 72 |if (err |!= noErr|
|00002010| 29 20 67 6f 74 6f 20 62 | 61 69 6c 3b 0d 09 09 65 |) goto b|ail;...e|
|00002020| 72 72 20 3d 20 43 52 43 | 57 72 69 74 65 28 65 6e |rr = CRC|Write(en|
|00002030| 63 76 2c 20 26 70 62 2e | 66 69 6c 65 50 61 72 61 |cv, &pb.|filePara|
|00002040| 6d 2e 69 6f 46 6c 4c 67 | 4c 65 6e 2c 20 34 29 3b |m.ioFlLg|Len, 4);|
|00002050| 0d 09 09 69 66 20 28 65 | 72 72 20 21 3d 20 6e 6f |...if (e|rr != no|
|00002060| 45 72 72 29 20 67 6f 74 | 6f 20 62 61 69 6c 3b 0d |Err) got|o bail;.|
|00002070| 09 09 65 72 72 20 3d 20 | 43 52 43 57 72 69 74 65 |..err = |CRCWrite|
|00002080| 28 65 6e 63 76 2c 20 26 | 70 62 2e 66 69 6c 65 50 |(encv, &|pb.fileP|
|00002090| 61 72 61 6d 2e 69 6f 46 | 6c 52 4c 67 4c 65 6e 2c |aram.ioF|lRLgLen,|
|000020a0| 20 34 29 3b 0d 09 09 69 | 66 20 28 65 72 72 20 21 | 4);...i|f (err !|
|000020b0| 3d 20 6e 6f 45 72 72 29 | 20 67 6f 74 6f 20 62 61 |= noErr)| goto ba|
|000020c0| 69 6c 3b 0d 09 65 72 72 | 20 3d 20 43 52 43 57 72 |il;..err| = CRCWr|
|000020d0| 69 74 65 45 6e 64 28 65 | 6e 63 76 29 3b 0d 09 69 |iteEnd(e|ncv);..i|
|000020e0| 66 20 28 65 72 72 20 21 | 3d 20 6e 6f 45 72 72 29 |f (err !|= noErr)|
|000020f0| 20 67 6f 74 6f 20 62 61 | 69 6c 3b 0d 0d 09 09 2f | goto ba|il;..../|
|00002100| 2a 20 20 66 69 6c 65 20 | 64 61 74 61 20 66 6f 72 |* file |data for|
|00002110| 6b 20 2a 2f 0d 09 65 72 | 72 20 3d 20 43 52 43 57 |k */..er|r = CRCW|
|00002120| 72 69 74 65 49 6e 69 74 | 28 65 6e 63 76 29 3b 0d |riteInit|(encv);.|
|00002130| 09 69 66 20 28 65 72 72 | 20 21 3d 20 6e 6f 45 72 |.if (err| != noEr|
|00002140| 72 29 20 67 6f 74 6f 20 | 62 61 69 6c 3b 0d 09 09 |r) goto |bail;...|
|00002150| 65 72 72 20 3d 20 48 4f | 70 65 6e 44 46 28 76 6f |err = HO|penDF(vo|
|00002160| 6c 2c 20 64 69 72 2c 20 | 6e 61 6d 65 2c 20 66 73 |l, dir, |name, fs|
|00002170| 52 64 50 65 72 6d 2c 20 | 26 72 65 66 6e 75 6d 29 |RdPerm, |&refnum)|
|00002180| 3b 0d 09 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |;...if (|err != n|
|00002190| 6f 45 72 72 29 20 67 6f | 74 6f 20 62 61 69 6c 3b |oErr) go|to bail;|
|000021a0| 0d 09 09 66 6f 72 20 28 | 62 79 74 65 63 6f 75 6e |...for (|bytecoun|
|000021b0| 74 20 3d 20 30 3b 20 62 | 79 74 65 63 6f 75 6e 74 |t = 0; b|ytecount|
|000021c0| 20 3c 20 70 62 2e 66 69 | 6c 65 50 61 72 61 6d 2e | < pb.fi|leParam.|
|000021d0| 69 6f 46 6c 4c 67 4c 65 | 6e 3b 20 62 79 74 65 63 |ioFlLgLe|n; bytec|
|000021e0| 6f 75 6e 74 20 2b 3d 20 | 61 63 74 63 6f 75 6e 74 |ount += |actcount|
|000021f0| 29 20 7b 0d 09 09 09 61 | 63 74 63 6f 75 6e 74 20 |) {....a|ctcount |
|00002200| 3d 20 70 62 2e 66 69 6c | 65 50 61 72 61 6d 2e 69 |= pb.fil|eParam.i|
|00002210| 6f 46 6c 4c 67 4c 65 6e | 20 2d 20 62 79 74 65 63 |oFlLgLen| - bytec|
|00002220| 6f 75 6e 74 3b 0d 09 09 | 09 69 66 20 28 61 63 74 |ount;...|.if (act|
|00002230| 63 6f 75 6e 74 20 3e 20 | 73 69 7a 65 6f 66 28 65 |count > |sizeof(e|
|00002240| 6e 63 76 2d 3e 66 49 6e | 42 75 66 66 65 72 29 29 |ncv->fIn|Buffer))|
|00002250| 20 61 63 74 63 6f 75 6e | 74 20 3d 20 73 69 7a 65 | actcoun|t = size|
|00002260| 6f 66 28 65 6e 63 76 2d | 3e 66 49 6e 42 75 66 66 |of(encv-|>fInBuff|
|00002270| 65 72 29 3b 0d 09 09 09 | 65 72 72 20 3d 20 46 53 |er);....|err = FS|
|00002280| 52 65 61 64 28 72 65 66 | 6e 75 6d 2c 20 26 61 63 |Read(ref|num, &ac|
|00002290| 74 63 6f 75 6e 74 2c 20 | 65 6e 63 76 2d 3e 66 49 |tcount, |encv->fI|
|000022a0| 6e 42 75 66 66 65 72 29 | 3b 0d 09 09 09 69 66 20 |nBuffer)|;....if |
|000022b0| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |(err != |noErr) g|
|000022c0| 6f 74 6f 20 62 61 69 6c | 3b 0d 09 09 09 65 72 72 |oto bail|;....err|
|000022d0| 20 3d 20 43 52 43 57 72 | 69 74 65 28 65 6e 63 76 | = CRCWr|ite(encv|
|000022e0| 2c 20 65 6e 63 76 2d 3e | 66 49 6e 42 75 66 66 65 |, encv->|fInBuffe|
|000022f0| 72 2c 20 61 63 74 63 6f | 75 6e 74 29 3b 0d 09 09 |r, actco|unt);...|
|00002300| 09 69 66 20 28 65 72 72 | 20 21 3d 20 6e 6f 45 72 |.if (err| != noEr|
|00002310| 72 29 20 67 6f 74 6f 20 | 62 61 69 6c 3b 0d 09 09 |r) goto |bail;...|
|00002320| 7d 0d 09 09 46 53 43 6c | 6f 73 65 28 72 65 66 6e |}...FSCl|ose(refn|
|00002330| 75 6d 29 3b 20 72 65 66 | 6e 75 6d 20 3d 20 30 3b |um); ref|num = 0;|
|00002340| 0d 09 65 72 72 20 3d 20 | 43 52 43 57 72 69 74 65 |..err = |CRCWrite|
|00002350| 45 6e 64 28 65 6e 63 76 | 29 3b 0d 09 69 66 20 28 |End(encv|);..if (|
|00002360| 65 72 72 20 21 3d 20 6e | 6f 45 72 72 29 20 67 6f |err != n|oErr) go|
|00002370| 74 6f 20 62 61 69 6c 3b | 0d 0d 09 09 2f 2a 20 66 |to bail;|..../* f|
|00002380| 69 6c 65 20 72 65 73 6f | 75 72 63 65 20 66 6f 72 |ile reso|urce for|
|00002390| 6b 20 2a 2f 0d 09 65 72 | 72 20 3d 20 43 52 43 57 |k */..er|r = CRCW|
|000023a0| 72 69 74 65 49 6e 69 74 | 28 65 6e 63 76 29 3b 0d |riteInit|(encv);.|
|000023b0| 09 69 66 20 28 65 72 72 | 20 21 3d 20 6e 6f 45 72 |.if (err| != noEr|
|000023c0| 72 29 20 67 6f 74 6f 20 | 62 61 69 6c 3b 0d 09 09 |r) goto |bail;...|
|000023d0| 65 72 72 20 3d 20 48 4f | 70 65 6e 52 46 28 76 6f |err = HO|penRF(vo|
|000023e0| 6c 2c 20 64 69 72 2c 20 | 6e 61 6d 65 2c 20 66 73 |l, dir, |name, fs|
|000023f0| 52 64 50 65 72 6d 2c 20 | 26 72 65 66 6e 75 6d 29 |RdPerm, |&refnum)|
|00002400| 3b 0d 09 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |;...if (|err != n|
|00002410| 6f 45 72 72 29 20 67 6f | 74 6f 20 62 61 69 6c 3b |oErr) go|to bail;|
|00002420| 0d 09 09 66 6f 72 20 28 | 62 79 74 65 63 6f 75 6e |...for (|bytecoun|
|00002430| 74 20 3d 20 30 3b 20 62 | 79 74 65 63 6f 75 6e 74 |t = 0; b|ytecount|
|00002440| 20 3c 20 70 62 2e 66 69 | 6c 65 50 61 72 61 6d 2e | < pb.fi|leParam.|
|00002450| 69 6f 46 6c 52 4c 67 4c | 65 6e 3b 20 62 79 74 65 |ioFlRLgL|en; byte|
|00002460| 63 6f 75 6e 74 20 2b 3d | 20 61 63 74 63 6f 75 6e |count +=| actcoun|
|00002470| 74 29 20 7b 0d 09 09 09 | 61 63 74 63 6f 75 6e 74 |t) {....|actcount|
|00002480| 20 3d 20 70 62 2e 66 69 | 6c 65 50 61 72 61 6d 2e | = pb.fi|leParam.|
|00002490| 69 6f 46 6c 52 4c 67 4c | 65 6e 20 2d 20 62 79 74 |ioFlRLgL|en - byt|
|000024a0| 65 63 6f 75 6e 74 3b 0d | 09 09 09 69 66 20 28 61 |ecount;.|...if (a|
|000024b0| 63 74 63 6f 75 6e 74 20 | 3e 20 73 69 7a 65 6f 66 |ctcount |> sizeof|
|000024c0| 28 65 6e 63 76 2d 3e 66 | 49 6e 42 75 66 66 65 72 |(encv->f|InBuffer|
|000024d0| 29 29 20 61 63 74 63 6f | 75 6e 74 20 3d 20 73 69 |)) actco|unt = si|
|000024e0| 7a 65 6f 66 28 65 6e 63 | 76 2d 3e 66 49 6e 42 75 |zeof(enc|v->fInBu|
|000024f0| 66 66 65 72 29 3b 0d 09 | 09 09 65 72 72 20 3d 20 |ffer);..|..err = |
|00002500| 46 53 52 65 61 64 28 72 | 65 66 6e 75 6d 2c 20 26 |FSRead(r|efnum, &|
|00002510| 61 63 74 63 6f 75 6e 74 | 2c 20 65 6e 63 76 2d 3e |actcount|, encv->|
|00002520| 66 49 6e 42 75 66 66 65 | 72 29 3b 0d 09 09 09 69 |fInBuffe|r);....i|
|00002530| 66 20 28 65 72 72 20 21 | 3d 20 6e 6f 45 72 72 29 |f (err !|= noErr)|
|00002540| 20 67 6f 74 6f 20 62 61 | 69 6c 3b 0d 09 09 09 65 | goto ba|il;....e|
|00002550| 72 72 20 3d 20 43 52 43 | 57 72 69 74 65 28 65 6e |rr = CRC|Write(en|
|00002560| 63 76 2c 20 65 6e 63 76 | 2d 3e 66 49 6e 42 75 66 |cv, encv|->fInBuf|
|00002570| 66 65 72 2c 20 61 63 74 | 63 6f 75 6e 74 29 3b 0d |fer, act|count);.|
|00002580| 09 09 09 69 66 20 28 65 | 72 72 20 21 3d 20 6e 6f |...if (e|rr != no|
|00002590| 45 72 72 29 20 67 6f 74 | 6f 20 62 61 69 6c 3b 0d |Err) got|o bail;.|
|000025a0| 09 09 7d 0d 09 09 46 53 | 43 6c 6f 73 65 28 72 65 |..}...FS|Close(re|
|000025b0| 66 6e 75 6d 29 3b 20 72 | 65 66 6e 75 6d 20 3d 20 |fnum); r|efnum = |
|000025c0| 30 3b 0d 09 65 72 72 20 | 3d 20 43 52 43 57 72 69 |0;..err |= CRCWri|
|000025d0| 74 65 45 6e 64 28 65 6e | 63 76 29 3b 0d 09 69 66 |teEnd(en|cv);..if|
|000025e0| 20 28 65 72 72 20 21 3d | 20 6e 6f 45 72 72 29 20 | (err !=| noErr) |
|000025f0| 67 6f 74 6f 20 62 61 69 | 6c 3b 0d 09 0d 09 65 72 |goto bai|l;....er|
|00002600| 72 20 3d 20 52 4c 45 57 | 72 69 74 65 45 6e 64 28 |r = RLEW|riteEnd(|
|00002610| 65 6e 63 76 29 3b 0d 09 | 69 66 20 28 65 72 72 20 |encv);..|if (err |
|00002620| 21 3d 20 6e 6f 45 72 72 | 29 20 67 6f 74 6f 20 62 |!= noErr|) goto b|
|00002630| 61 69 6c 3b 0d 09 44 69 | 73 70 6f 73 65 50 74 72 |ail;..Di|sposePtr|
|00002640| 28 28 50 74 72 29 20 65 | 6e 63 76 29 3b 0d 09 0d |((Ptr) e|ncv);...|
|00002650| 09 72 65 74 75 72 6e 20 | 6e 6f 45 72 72 3b 0d 09 |.return |noErr;..|
|00002660| 0d 62 61 69 6c 3a 0d 09 | 69 66 20 28 72 65 66 6e |.bail:..|if (refn|
|00002670| 75 6d 20 21 3d 20 30 29 | 20 46 53 43 6c 6f 73 65 |um != 0)| FSClose|
|00002680| 28 72 65 66 6e 75 6d 29 | 3b 0d 09 69 66 20 28 65 |(refnum)|;..if (e|
|00002690| 6e 63 76 20 21 3d 20 4e | 55 4c 4c 29 20 44 69 73 |ncv != N|ULL) Dis|
|000026a0| 70 6f 73 65 50 74 72 28 | 28 50 74 72 29 20 65 6e |posePtr(|(Ptr) en|
|000026b0| 63 76 29 3b 0d 09 72 65 | 74 75 72 6e 20 65 72 72 |cv);..re|turn err|
|000026c0| 3b 0d 7d 0d 09 0d 0d 0d | 0d 2f 2a 20 42 49 4e 48 |;.}.....|./* BINH|
|000026d0| 45 58 20 44 45 43 4f 44 | 45 52 20 2a 2f 0d 0d 0d |EX DECOD|ER */...|
|000026e0| 2f 2a 20 48 51 58 20 49 | 4e 50 55 54 2c 20 48 51 |/* HQX I|NPUT, HQ|
|000026f0| 58 53 6f 75 72 63 65 20 | 63 61 6c 6c 73 20 2a 2f |XSource |calls */|
|00002700| 0d 0d 73 74 61 74 69 63 | 20 4f 53 45 72 72 20 47 |..static| OSErr G|
|00002710| 65 74 4e 65 78 74 43 68 | 61 72 61 63 74 65 72 28 |etNextCh|aracter(|
|00002720| 48 51 58 44 65 63 56 61 | 72 73 50 74 72 20 64 65 |HQXDecVa|rsPtr de|
|00002730| 63 76 2c 20 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |cv, unsi|gned cha|
|00002740| 72 2a 20 74 68 65 5f 63 | 68 61 72 29 20 7b 0d 09 |r* the_c|har) {..|
|00002750| 4f 53 45 72 72 20 65 72 | 72 3b 0d 09 6c 6f 6e 67 |OSErr er|r;..long|
|00002760| 20 62 79 74 65 73 3b 0d | 09 69 66 20 28 64 65 63 | bytes;.|.if (dec|
|00002770| 76 2d 3e 66 49 6e 42 75 | 66 70 20 3e 3d 20 64 65 |v->fInBu|fp >= de|
|00002780| 63 76 2d 3e 66 49 6e 42 | 75 66 4d 61 78 29 20 7b |cv->fInB|ufMax) {|
|00002790| 0d 09 09 65 72 72 20 3d | 20 64 65 63 76 2d 3e 66 |...err =| decv->f|
|000027a0| 53 6f 75 72 63 65 28 64 | 65 63 76 2d 3e 66 49 6e |Source(d|ecv->fIn|
|000027b0| 42 75 66 66 65 72 2c 20 | 28 62 79 74 65 73 20 3d |Buffer, |(bytes =|
|000027c0| 20 73 69 7a 65 6f 66 28 | 64 65 63 76 2d 3e 66 49 | sizeof(|decv->fI|
|000027d0| 6e 42 75 66 66 65 72 29 | 2c 20 26 62 79 74 65 73 |nBuffer)|, &bytes|
|000027e0| 29 2c 20 64 65 63 76 2d | 3e 66 53 6f 75 72 63 65 |), decv-|>fSource|
|000027f0| 52 65 66 43 6f 6e 29 3b | 0d 09 09 69 66 20 28 65 |RefCon);|...if (e|
|00002800| 72 72 20 3d 3d 20 65 6f | 66 45 72 72 29 20 65 72 |rr == eo|fErr) er|
|00002810| 72 20 3d 20 6e 6f 45 72 | 72 3b 0d 09 09 69 66 20 |r = noEr|r;...if |
|00002820| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 72 |(err != |noErr) r|
|00002830| 65 74 75 72 6e 20 65 72 | 72 3b 0d 09 09 64 65 63 |eturn er|r;...dec|
|00002840| 76 2d 3e 66 49 6e 42 75 | 66 70 20 3d 20 64 65 63 |v->fInBu|fp = dec|
|00002850| 76 2d 3e 66 49 6e 42 75 | 66 66 65 72 3b 0d 09 09 |v->fInBu|ffer;...|
|00002860| 64 65 63 76 2d 3e 66 49 | 6e 42 75 66 4d 61 78 20 |decv->fI|nBufMax |
|00002870| 3d 20 64 65 63 76 2d 3e | 66 49 6e 42 75 66 66 65 |= decv->|fInBuffe|
|00002880| 72 20 2b 20 62 79 74 65 | 73 3b 0d 09 09 69 66 20 |r + byte|s;...if |
|00002890| 28 64 65 63 76 2d 3e 66 | 49 6e 42 75 66 70 20 3e |(decv->f|InBufp >|
|000028a0| 3d 20 64 65 63 76 2d 3e | 66 49 6e 42 75 66 4d 61 |= decv->|fInBufMa|
|000028b0| 78 29 20 72 65 74 75 72 | 6e 20 65 6f 66 45 72 72 |x) retur|n eofErr|
|000028c0| 3b 0d 09 7d 0d 09 2a 74 | 68 65 5f 63 68 61 72 20 |;..}..*t|he_char |
|000028d0| 3d 20 2a 64 65 63 76 2d | 3e 66 49 6e 42 75 66 70 |= *decv-|>fInBufp|
|000028e0| 2b 2b 3b 0d 09 72 65 74 | 75 72 6e 20 6e 6f 45 72 |++;..ret|urn noEr|
|000028f0| 72 3b 0d 7d 0d 0d 73 74 | 61 74 69 63 20 4f 53 45 |r;.}..st|atic OSE|
|00002900| 72 72 20 48 51 58 52 65 | 61 64 28 48 51 58 44 65 |rr HQXRe|ad(HQXDe|
|00002910| 63 56 61 72 73 50 74 72 | 20 64 65 63 76 2c 20 76 |cVarsPtr| decv, v|
|00002920| 6f 69 64 2a 20 62 75 66 | 66 65 72 2c 20 6c 6f 6e |oid* buf|fer, lon|
|00002930| 67 20 63 6f 75 6e 74 29 | 20 7b 0d 09 75 6e 73 69 |g count)| {..unsi|
|00002940| 67 6e 65 64 20 63 68 61 | 72 20 2a 64 73 74 2c 20 |gned cha|r *dst, |
|00002950| 63 6f 64 65 3b 0d 09 6c | 6f 6e 67 20 69 3b 0d 09 |code;..l|ong i;..|
|00002960| 6c 6f 6e 67 20 72 65 61 | 64 63 6f 64 65 3b 0d 09 |long rea|dcode;..|
|00002970| 4f 53 45 72 72 20 65 72 | 72 3b 0d 0d 09 64 73 74 |OSErr er|r;...dst|
|00002980| 20 3d 20 28 75 6e 73 69 | 67 6e 65 64 20 63 68 61 | = (unsi|gned cha|
|00002990| 72 2a 29 20 62 75 66 66 | 65 72 3b 0d 09 66 6f 72 |r*) buff|er;..for|
|000029a0| 20 28 20 69 20 3d 20 30 | 3b 20 69 20 3c 20 63 6f | ( i = 0|; i < co|
|000029b0| 75 6e 74 3b 20 69 2b 2b | 29 20 7b 0d 09 09 77 68 |unt; i++|) {...wh|
|000029c0| 69 6c 65 20 28 64 65 63 | 76 2d 3e 66 42 69 74 42 |ile (dec|v->fBitB|
|000029d0| 75 66 66 65 72 42 69 74 | 73 20 3c 20 38 29 20 20 |ufferBit|s < 8) |
|000029e0| 7b 0d 09 09 09 72 65 61 | 64 63 6f 64 65 20 3d 20 |{....rea|dcode = |
|000029f0| 2d 31 3b 0d 09 09 09 77 | 68 69 6c 65 20 28 72 65 |-1;....w|hile (re|
|00002a00| 61 64 63 6f 64 65 20 3c | 20 30 29 20 7b 0d 09 09 |adcode <| 0) {...|
|00002a10| 09 09 09 2f 2a 20 67 65 | 74 20 74 68 65 20 6e 65 |.../* ge|t the ne|
|00002a20| 78 74 20 63 68 61 72 61 | 63 74 65 72 20 2a 2f 0d |xt chara|cter */.|
|00002a30| 09 09 09 09 65 72 72 20 | 3d 20 47 65 74 4e 65 78 |....err |= GetNex|
|00002a40| 74 43 68 61 72 61 63 74 | 65 72 28 64 65 63 76 2c |tCharact|er(decv,|
|00002a50| 20 26 63 6f 64 65 29 3b | 0d 09 09 09 09 69 66 20 | &code);|.....if |
|00002a60| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 72 |(err != |noErr) r|
|00002a70| 65 74 75 72 6e 20 65 72 | 72 3b 0d 09 09 09 09 09 |eturn er|r;......|
|00002a80| 2f 2a 20 6c 6f 6f 6b 20 | 75 70 20 74 68 65 20 63 |/* look |up the c|
|00002a90| 6f 64 65 20 69 6e 20 74 | 68 65 20 74 61 62 6c 65 |ode in t|he table|
|00002aa0| 20 61 6e 64 20 64 69 73 | 70 61 74 63 68 20 6f 6e | and dis|patch on|
|00002ab0| 20 74 68 65 20 76 61 6c | 75 65 20 2a 2f 0d 09 09 | the val|ue */...|
|00002ac0| 09 09 72 65 61 64 63 6f | 64 65 20 3d 20 68 71 78 |..readco|de = hqx|
|00002ad0| 74 61 62 5b 63 6f 64 65 | 5d 3b 0d 09 09 09 09 69 |tab[code|];.....i|
|00002ae0| 66 20 28 72 65 61 64 63 | 6f 64 65 20 3d 3d 20 2d |f (readc|ode == -|
|00002af0| 33 29 20 7b 0d 09 09 09 | 09 09 64 65 63 76 2d 3e |3) {....|..decv->|
|00002b00| 66 49 6e 48 71 78 44 61 | 74 61 20 3d 20 21 64 65 |fInHqxDa|ta = !de|
|00002b10| 63 76 2d 3e 66 49 6e 48 | 71 78 44 61 74 61 3b 0d |cv->fInH|qxData;.|
|00002b20| 09 09 09 09 7d 20 65 6c | 73 65 20 69 66 20 28 21 |....} el|se if (!|
|00002b30| 64 65 63 76 2d 3e 66 49 | 6e 48 71 78 44 61 74 61 |decv->fI|nHqxData|
|00002b40| 29 0d 09 09 09 09 09 72 | 65 61 64 63 6f 64 65 20 |)......r|eadcode |
|00002b50| 3d 20 2d 31 3b 0d 09 09 | 09 7d 09 09 09 0d 09 09 |= -1;...|.}......|
|00002b60| 09 64 65 63 76 2d 3e 66 | 42 69 74 42 75 66 66 65 |.decv->f|BitBuffe|
|00002b70| 72 20 3d 20 28 64 65 63 | 76 2d 3e 66 42 69 74 42 |r = (dec|v->fBitB|
|00002b80| 75 66 66 65 72 3c 3c 36 | 29 20 7c 20 72 65 61 64 |uffer<<6|) | read|
|00002b90| 63 6f 64 65 3b 0d 09 09 | 09 64 65 63 76 2d 3e 66 |code;...|.decv->f|
|00002ba0| 42 69 74 42 75 66 66 65 | 72 42 69 74 73 20 2b 3d |BitBuffe|rBits +=|
|00002bb0| 20 36 3b 0d 09 09 7d 0d | 09 09 2a 64 73 74 2b 2b | 6;...}.|..*dst++|
|00002bc0| 20 3d 20 28 64 65 63 76 | 2d 3e 66 42 69 74 42 75 | = (decv|->fBitBu|
|00002bd0| 66 66 65 72 3e 3e 28 64 | 65 63 76 2d 3e 66 42 69 |ffer>>(d|ecv->fBi|
|00002be0| 74 42 75 66 66 65 72 42 | 69 74 73 2d 38 29 29 3b |tBufferB|its-8));|
|00002bf0| 0d 09 09 64 65 63 76 2d | 3e 66 42 69 74 42 75 66 |...decv-|>fBitBuf|
|00002c00| 66 65 72 42 69 74 73 20 | 2d 3d 20 38 3b 0d 09 7d |ferBits |-= 8;..}|
|00002c10| 0d 09 0d 09 72 65 74 75 | 72 6e 20 6e 6f 45 72 72 |....retu|rn noErr|
|00002c20| 3b 0d 7d 0d 0d 0d 2f 2a | 20 52 4c 45 20 49 4e 50 |;.}.../*| RLE INP|
|00002c30| 55 54 2c 20 20 48 51 58 | 52 65 61 64 20 63 61 6c |UT, HQX|Read cal|
|00002c40| 6c 73 20 2a 2f 0d 0d 73 | 74 61 74 69 63 20 4f 53 |ls */..s|tatic OS|
|00002c50| 45 72 72 20 52 4c 45 52 | 65 61 64 28 48 51 58 44 |Err RLER|ead(HQXD|
|00002c60| 65 63 56 61 72 73 50 74 | 72 20 64 65 63 76 2c 20 |ecVarsPt|r decv, |
|00002c70| 76 6f 69 64 2a 20 62 75 | 66 66 65 72 2c 20 6c 6f |void* bu|ffer, lo|
|00002c80| 6e 67 20 63 6f 75 6e 74 | 29 20 7b 0d 09 75 6e 73 |ng count|) {..uns|
|00002c90| 69 67 6e 65 64 20 63 68 | 61 72 20 2a 63 68 2c 20 |igned ch|ar *ch, |
|00002ca0| 6e 65 78 74 63 68 61 72 | 2c 20 63 6f 75 6e 74 76 |nextchar|, countv|
|00002cb0| 61 6c 75 65 3b 0d 09 6c | 6f 6e 67 20 69 3b 0d 09 |alue;..l|ong i;..|
|00002cc0| 4f 53 45 72 72 20 65 72 | 72 3b 0d 0d 09 63 68 20 |OSErr er|r;...ch |
|00002cd0| 3d 20 28 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |= (unsig|ned char|
|00002ce0| 2a 29 20 62 75 66 66 65 | 72 3b 0d 09 65 72 72 20 |*) buffe|r;..err |
|00002cf0| 3d 20 6e 6f 45 72 72 3b | 0d 09 66 6f 72 20 28 20 |= noErr;|..for ( |
|00002d00| 69 3d 30 3b 20 69 20 3c | 20 63 6f 75 6e 74 3b 20 |i=0; i <| count; |
|00002d10| 29 0d 09 09 69 66 20 28 | 64 65 63 76 2d 3e 66 52 |)...if (|decv->fR|
|00002d20| 4c 45 43 6f 75 6e 74 20 | 3e 20 30 29 20 7b 0d 09 |LECount |> 0) {..|
|00002d30| 09 09 2a 63 68 2b 2b 20 | 3d 20 64 65 63 76 2d 3e |..*ch++ |= decv->|
|00002d40| 66 52 4c 45 43 68 61 72 | 61 63 74 65 72 3b 0d 09 |fRLEChar|acter;..|
|00002d50| 09 09 64 65 63 76 2d 3e | 66 52 4c 45 43 6f 75 6e |..decv->|fRLECoun|
|00002d60| 74 2d 2d 3b 0d 09 09 09 | 69 2b 2b 3b 0d 09 09 7d |t--;....|i++;...}|
|00002d70| 20 65 6c 73 65 20 7b 0d | 09 09 09 69 66 20 28 28 | else {.|...if ((|
|00002d80| 65 72 72 20 3d 20 48 51 | 58 52 65 61 64 28 64 65 |err = HQ|XRead(de|
|00002d90| 63 76 2c 20 26 6e 65 78 | 74 63 68 61 72 2c 20 31 |cv, &nex|tchar, 1|
|00002da0| 29 29 20 21 3d 20 6e 6f | 45 72 72 29 20 72 65 74 |)) != no|Err) ret|
|00002db0| 75 72 6e 20 65 72 72 3b | 0d 09 09 09 69 66 20 28 |urn err;|....if (|
|00002dc0| 6e 65 78 74 63 68 61 72 | 20 3d 3d 20 6b 52 4c 45 |nextchar| == kRLE|
|00002dd0| 46 6c 61 67 29 20 7b 0d | 09 09 09 09 69 66 20 28 |Flag) {.|....if (|
|00002de0| 28 65 72 72 20 3d 20 48 | 51 58 52 65 61 64 28 64 |(err = H|QXRead(d|
|00002df0| 65 63 76 2c 20 26 63 6f | 75 6e 74 76 61 6c 75 65 |ecv, &co|untvalue|
|00002e00| 2c 20 31 29 29 20 21 3d | 20 6e 6f 45 72 72 29 20 |, 1)) !=| noErr) |
|00002e10| 72 65 74 75 72 6e 20 65 | 72 72 3b 0d 09 09 09 09 |return e|rr;.....|
|00002e20| 69 66 20 28 63 6f 75 6e | 74 76 61 6c 75 65 20 3d |if (coun|tvalue =|
|00002e30| 3d 20 30 29 20 7b 0d 09 | 09 09 09 09 64 65 63 76 |= 0) {..|....decv|
|00002e40| 2d 3e 66 52 4c 45 43 68 | 61 72 61 63 74 65 72 20 |->fRLECh|aracter |
|00002e50| 3d 20 6b 52 4c 45 46 6c | 61 67 3b 0d 09 09 09 09 |= kRLEFl|ag;.....|
|00002e60| 09 64 65 63 76 2d 3e 66 | 52 4c 45 43 6f 75 6e 74 |.decv->f|RLECount|
|00002e70| 20 3d 20 31 3b 0d 09 09 | 09 09 7d 20 65 6c 73 65 | = 1;...|..} else|
|00002e80| 20 64 65 63 76 2d 3e 66 | 52 4c 45 43 6f 75 6e 74 | decv->f|RLECount|
|00002e90| 20 3d 20 63 6f 75 6e 74 | 76 61 6c 75 65 20 2d 20 | = count|value - |
|00002ea0| 31 3b 0d 09 09 09 7d 20 | 65 6c 73 65 20 7b 0d 09 |1;....} |else {..|
|00002eb0| 09 09 09 64 65 63 76 2d | 3e 66 52 4c 45 43 68 61 |...decv-|>fRLECha|
|00002ec0| 72 61 63 74 65 72 20 3d | 20 6e 65 78 74 63 68 61 |racter =| nextcha|
|00002ed0| 72 3b 0d 09 09 09 09 64 | 65 63 76 2d 3e 66 52 4c |r;.....d|ecv->fRL|
|00002ee0| 45 43 6f 75 6e 74 20 3d | 20 31 3b 0d 09 09 09 7d |ECount =| 1;....}|
|00002ef0| 0d 09 09 7d 0d 09 09 0d | 09 72 65 74 75 72 6e 20 |...}....|.return |
|00002f00| 6e 6f 45 72 72 3b 0d 7d | 0d 0d 0d 2f 2a 20 43 52 |noErr;.}|.../* CR|
|00002f10| 43 20 49 4e 50 55 54 2c | 20 52 4c 45 52 65 61 64 |C INPUT,| RLERead|
|00002f20| 20 63 61 6c 6c 73 20 2a | 2f 0d 0d 73 74 61 74 69 | calls *|/..stati|
|00002f30| 63 20 4f 53 45 72 72 20 | 43 52 43 52 65 61 64 49 |c OSErr |CRCReadI|
|00002f40| 6e 69 74 28 48 51 58 44 | 65 63 56 61 72 73 50 74 |nit(HQXD|ecVarsPt|
|00002f50| 72 20 64 65 63 76 29 20 | 7b 0d 09 64 65 63 76 2d |r decv) |{..decv-|
|00002f60| 3e 66 43 52 43 20 3d 20 | 69 6e 69 74 69 61 6c 5f |>fCRC = |initial_|
|00002f70| 63 72 63 28 29 3b 0d 09 | 72 65 74 75 72 6e 20 6e |crc();..|return n|
|00002f80| 6f 45 72 72 3b 0d 7d 0d | 0d 73 74 61 74 69 63 20 |oErr;.}.|.static |
|00002f90| 4f 53 45 72 72 20 43 52 | 43 52 65 61 64 28 48 51 |OSErr CR|CRead(HQ|
|00002fa0| 58 44 65 63 56 61 72 73 | 50 74 72 20 64 65 63 76 |XDecVars|Ptr decv|
|00002fb0| 2c 20 76 6f 69 64 2a 20 | 62 75 66 66 65 72 2c 20 |, void* |buffer, |
|00002fc0| 6c 6f 6e 67 20 63 6f 75 | 6e 74 29 20 7b 0d 09 4f |long cou|nt) {..O|
|00002fd0| 53 45 72 72 20 65 72 72 | 3b 0d 09 69 66 20 28 28 |SErr err|;..if ((|
|00002fe0| 65 72 72 20 3d 20 52 4c | 45 52 65 61 64 28 64 65 |err = RL|ERead(de|
|00002ff0| 63 76 2c 20 62 75 66 66 | 65 72 2c 20 63 6f 75 6e |cv, buff|er, coun|
|00003000| 74 29 29 20 21 3d 20 6e | 6f 45 72 72 29 20 72 65 |t)) != n|oErr) re|
|00003010| 74 75 72 6e 20 65 72 72 | 3b 0d 09 64 65 63 76 2d |turn err|;..decv-|
|00003020| 3e 66 43 52 43 20 3d 20 | 63 72 63 5f 72 75 6e 28 |>fCRC = |crc_run(|
|00003030| 64 65 63 76 2d 3e 66 43 | 52 43 2c 20 62 75 66 66 |decv->fC|RC, buff|
|00003040| 65 72 2c 20 63 6f 75 6e | 74 29 3b 0d 09 72 65 74 |er, coun|t);..ret|
|00003050| 75 72 6e 20 6e 6f 45 72 | 72 3b 0d 7d 0d 0d 73 74 |urn noEr|r;.}..st|
|00003060| 61 74 69 63 20 4f 53 45 | 72 72 20 43 52 43 52 65 |atic OSE|rr CRCRe|
|00003070| 61 64 45 6e 64 28 48 51 | 58 44 65 63 56 61 72 73 |adEnd(HQ|XDecVars|
|00003080| 50 74 72 20 64 65 63 76 | 29 20 7b 0d 09 4f 53 45 |Ptr decv|) {..OSE|
|00003090| 72 72 20 65 72 72 3b 0d | 09 75 6e 73 69 67 6e 65 |rr err;.|.unsigne|
|000030a0| 64 20 73 68 6f 72 74 20 | 73 61 76 65 64 5f 63 72 |d short |saved_cr|
|000030b0| 63 3b 0d 09 69 66 20 28 | 28 65 72 72 20 3d 20 52 |c;..if (|(err = R|
|000030c0| 4c 45 52 65 61 64 28 64 | 65 63 76 2c 20 26 73 61 |LERead(d|ecv, &sa|
|000030d0| 76 65 64 5f 63 72 63 2c | 20 32 29 29 20 21 3d 20 |ved_crc,| 2)) != |
|000030e0| 6e 6f 45 72 72 29 20 72 | 65 74 75 72 6e 20 65 72 |noErr) r|eturn er|
|000030f0| 72 3b 0d 09 64 65 63 76 | 2d 3e 66 43 52 43 20 3d |r;..decv|->fCRC =|
|00003100| 20 63 72 63 5f 62 79 74 | 65 28 64 65 63 76 2d 3e | crc_byt|e(decv->|
|00003110| 66 43 52 43 2c 20 30 29 | 3b 0d 09 64 65 63 76 2d |fCRC, 0)|;..decv-|
|00003120| 3e 66 43 52 43 20 3d 20 | 63 72 63 5f 62 79 74 65 |>fCRC = |crc_byte|
|00003130| 28 64 65 63 76 2d 3e 66 | 43 52 43 2c 20 30 29 3b |(decv->f|CRC, 0);|
|00003140| 0d 09 69 66 20 28 73 61 | 76 65 64 5f 63 72 63 20 |..if (sa|ved_crc |
|00003150| 21 3d 20 64 65 63 76 2d | 3e 66 43 52 43 29 20 72 |!= decv-|>fCRC) r|
|00003160| 65 74 75 72 6e 20 70 61 | 72 61 6d 45 72 72 3b 20 |eturn pa|ramErr; |
|00003170| 65 6c 73 65 20 72 65 74 | 75 72 6e 20 6e 6f 45 72 |else ret|urn noEr|
|00003180| 72 3b 0d 7d 0d 0d 0d 0d | 2f 2a 20 46 49 4c 45 20 |r;.}....|/* FILE |
|00003190| 49 4e 50 55 54 2c 20 43 | 52 43 52 65 61 64 20 63 |INPUT, C|RCRead c|
|000031a0| 61 6c 6c 73 20 2a 2f 0d | 0d 4f 53 45 72 72 20 48 |alls */.|.OSErr H|
|000031b0| 51 58 44 65 63 6f 64 65 | 28 48 51 58 53 6f 75 72 |QXDecode|(HQXSour|
|000031c0| 63 65 20 73 72 63 2c 20 | 48 51 58 4e 61 6d 65 46 |ce src, |HQXNameF|
|000031d0| 69 6c 74 65 72 20 66 6e | 61 6d 65 2c 20 42 6f 6f |ilter fn|ame, Boo|
|000031e0| 6c 65 61 6e 20 63 61 6e | 5f 72 65 70 6c 61 63 65 |lean can|_replace|
|000031f0| 2c 20 42 6f 6f 6c 65 61 | 6e 20 68 65 61 64 65 72 |, Boolea|n header|
|00003200| 5f 73 65 61 72 63 68 2c | 20 6c 6f 6e 67 20 72 65 |_search,| long re|
|00003210| 66 63 6f 6e 29 20 7b 0d | 09 4f 53 45 72 72 20 65 |fcon) {.|.OSErr e|
|00003220| 72 72 3b 0d 09 46 49 6e | 66 6f 20 69 6e 66 6f 2c |rr;..FIn|fo info,|
|00003230| 20 74 69 6e 66 6f 3b 0d | 09 6c 6f 6e 67 20 7a 65 | tinfo;.|.long ze|
|00003240| 72 6f 2c 20 62 79 74 65 | 63 6f 75 6e 74 2c 20 61 |ro, byte|count, a|
|00003250| 63 74 63 6f 75 6e 74 2c | 20 64 69 72 2c 20 64 61 |ctcount,| dir, da|
|00003260| 74 61 5f 6c 65 6e 67 74 | 68 2c 20 72 73 72 63 5f |ta_lengt|h, rsrc_|
|00003270| 6c 65 6e 67 74 68 3b 0d | 09 73 68 6f 72 74 20 72 |length;.|.short r|
|00003280| 65 66 6e 75 6d 2c 20 76 | 6f 6c 3b 0d 09 53 74 72 |efnum, v|ol;..Str|
|00003290| 32 35 35 20 6e 61 6d 65 | 3b 0d 09 42 6f 6f 6c 65 |255 name|;..Boole|
|000032a0| 61 6e 20 66 69 6c 65 5f | 65 78 69 73 74 73 3b 0d |an file_|exists;.|
|000032b0| 09 48 51 58 44 65 63 56 | 61 72 73 50 74 72 20 64 |.HQXDecV|arsPtr d|
|000032c0| 65 63 76 3b 0d 09 0d 09 | 09 2f 2a 20 73 65 74 20 |ecv;....|./* set |
|000032d0| 75 70 20 2a 2f 0d 09 48 | 51 58 49 6e 69 74 28 29 |up */..H|QXInit()|
|000032e0| 3b 0d 09 64 65 63 76 20 | 3d 20 4e 55 4c 4c 3b 0d |;..decv |= NULL;.|
|000032f0| 09 7a 65 72 6f 20 3d 20 | 30 3b 0d 09 72 65 66 6e |.zero = |0;..refn|
|00003300| 75 6d 20 3d 20 30 3b 0d | 09 76 6f 6c 20 3d 20 30 |um = 0;.|.vol = 0|
|00003310| 3b 0d 09 64 69 72 20 3d | 20 30 3b 0d 09 66 69 6c |;..dir =| 0;..fil|
|00003320| 65 5f 65 78 69 73 74 73 | 20 3d 20 66 61 6c 73 65 |e_exists| = false|
|00003330| 3b 0d 09 09 0d 09 09 2f | 2a 20 61 6c 6c 6f 63 61 |;....../|* alloca|
|00003340| 74 65 20 73 68 61 72 65 | 64 20 76 61 72 69 61 62 |te share|d variab|
|00003350| 6c 65 73 20 2a 2f 0d 09 | 64 65 63 76 20 3d 20 28 |les */..|decv = (|
|00003360| 48 51 58 44 65 63 56 61 | 72 73 50 74 72 29 20 4e |HQXDecVa|rsPtr) N|
|00003370| 65 77 50 74 72 43 6c 65 | 61 72 28 73 69 7a 65 6f |ewPtrCle|ar(sizeo|
|00003380| 66 28 48 51 58 44 65 63 | 6f 64 65 56 61 72 73 29 |f(HQXDec|odeVars)|
|00003390| 29 3b 0d 09 69 66 20 28 | 28 65 72 72 20 3d 20 4d |);..if (|(err = M|
|000033a0| 65 6d 45 72 72 6f 72 28 | 29 29 20 21 3d 20 6e 6f |emError(|)) != no|
|000033b0| 45 72 72 29 20 67 6f 74 | 6f 20 62 61 69 6c 3b 0d |Err) got|o bail;.|
|000033c0| 0d 09 09 2f 2a 20 72 65 | 61 64 65 72 20 67 6c 6f |.../* re|ader glo|
|000033d0| 62 61 6c 73 20 2a 2f 0d | 09 64 65 63 76 2d 3e 66 |bals */.|.decv->f|
|000033e0| 52 4c 45 43 6f 75 6e 74 | 20 3d 20 30 3b 0d 09 64 |RLECount| = 0;..d|
|000033f0| 65 63 76 2d 3e 66 49 6e | 42 75 66 4d 61 78 20 3d |ecv->fIn|BufMax =|
|00003400| 20 64 65 63 76 2d 3e 66 | 49 6e 42 75 66 70 20 3d | decv->f|InBufp =|
|00003410| 20 64 65 63 76 2d 3e 66 | 49 6e 42 75 66 66 65 72 | decv->f|InBuffer|
|00003420| 3b 0d 09 64 65 63 76 2d | 3e 66 53 6f 75 72 63 65 |;..decv-|>fSource|
|00003430| 20 3d 20 73 72 63 3b 0d | 09 64 65 63 76 2d 3e 66 | = src;.|.decv->f|
|00003440| 53 6f 75 72 63 65 52 65 | 66 43 6f 6e 20 3d 20 72 |SourceRe|fCon = r|
|00003450| 65 66 63 6f 6e 3b 0d 09 | 64 65 63 76 2d 3e 66 42 |efcon;..|decv->fB|
|00003460| 69 74 42 75 66 66 65 72 | 20 3d 20 64 65 63 76 2d |itBuffer| = decv-|
|00003470| 3e 66 42 69 74 42 75 66 | 66 65 72 42 69 74 73 20 |>fBitBuf|ferBits |
|00003480| 3d 20 30 3b 0d 09 64 65 | 63 76 2d 3e 66 49 6e 48 |= 0;..de|cv->fInH|
|00003490| 71 78 44 61 74 61 20 3d | 20 66 61 6c 73 65 3b 0d |qxData =| false;.|
|000034a0| 09 0d 09 09 2f 2a 20 73 | 65 61 72 63 68 20 66 6f |..../* s|earch fo|
|000034b0| 72 20 74 68 65 20 68 65 | 61 64 65 72 20 73 74 72 |r the he|ader str|
|000034c0| 69 6e 67 20 2a 2f 0d 09 | 69 66 20 28 68 65 61 64 |ing */..|if (head|
|000034d0| 65 72 5f 73 65 61 72 63 | 68 29 20 7b 0d 09 09 63 |er_searc|h) {...c|
|000034e0| 68 61 72 20 2a 68 65 61 | 64 65 72 2c 20 2a 68 65 |har *hea|der, *he|
|000034f0| 61 64 65 72 70 2c 20 69 | 6e 70 75 74 63 68 61 72 |aderp, i|nputchar|
|00003500| 3b 0d 09 09 68 65 61 64 | 65 72 70 20 3d 20 68 65 |;...head|erp = he|
|00003510| 61 64 65 72 20 3d 20 22 | 28 54 68 69 73 20 66 69 |ader = "|(This fi|
|00003520| 6c 65 20 6d 75 73 74 20 | 62 65 20 63 6f 6e 76 65 |le must |be conve|
|00003530| 72 74 65 64 20 77 69 74 | 68 20 42 69 6e 48 65 78 |rted wit|h BinHex|
|00003540| 20 34 2e 30 29 22 3b 0d | 09 09 77 68 69 6c 65 20 | 4.0)";.|..while |
|00003550| 28 2a 68 65 61 64 65 72 | 70 20 21 3d 20 27 5c 30 |(*header|p != '\0|
|00003560| 27 29 20 7b 0d 09 09 09 | 65 72 72 20 3d 20 47 65 |') {....|err = Ge|
|00003570| 74 4e 65 78 74 43 68 61 | 72 61 63 74 65 72 28 64 |tNextCha|racter(d|
|00003580| 65 63 76 2c 20 28 75 6e | 73 69 67 6e 65 64 20 63 |ecv, (un|signed c|
|00003590| 68 61 72 2a 29 20 26 69 | 6e 70 75 74 63 68 61 72 |har*) &i|nputchar|
|000035a0| 29 3b 0d 09 09 09 69 66 | 20 28 65 72 72 20 21 3d |);....if| (err !=|
|000035b0| 20 6e 6f 45 72 72 29 20 | 67 6f 74 6f 20 62 61 69 | noErr) |goto bai|
|000035c0| 6c 3b 0d 09 09 09 69 66 | 20 28 69 6e 70 75 74 63 |l;....if| (inputc|
|000035d0| 68 61 72 20 3d 3d 20 2a | 68 65 61 64 65 72 70 29 |har == *|headerp)|
|000035e0| 20 68 65 61 64 65 72 70 | 2b 2b 3b 20 65 6c 73 65 | headerp|++; else|
|000035f0| 20 68 65 61 64 65 72 70 | 20 3d 20 68 65 61 64 65 | headerp| = heade|
|00003600| 72 3b 0d 09 09 7d 0d 09 | 7d 0d 09 0d 09 09 2f 2a |r;...}..|}...../*|
|00003610| 20 68 71 78 20 66 69 6c | 65 20 68 65 61 64 65 72 | hqx fil|e header|
|00003620| 20 2a 2f 0d 09 65 72 72 | 20 3d 20 43 52 43 52 65 | */..err| = CRCRe|
|00003630| 61 64 49 6e 69 74 28 64 | 65 63 76 29 3b 0d 09 69 |adInit(d|ecv);..i|
|00003640| 66 20 28 65 72 72 20 21 | 3d 20 6e 6f 45 72 72 29 |f (err !|= noErr)|
|00003650| 20 67 6f 74 6f 20 62 61 | 69 6c 3b 0d 09 65 72 72 | goto ba|il;..err|
|00003660| 20 3d 20 43 52 43 52 65 | 61 64 28 64 65 63 76 2c | = CRCRe|ad(decv,|
|00003670| 20 6e 61 6d 65 2c 20 31 | 29 3b 0d 09 69 66 20 28 | name, 1|);..if (|
|00003680| 65 72 72 20 21 3d 20 6e | 6f 45 72 72 29 20 67 6f |err != n|oErr) go|
|00003690| 74 6f 20 62 61 69 6c 3b | 0d 09 65 72 72 20 3d 20 |to bail;|..err = |
|000036a0| 43 52 43 52 65 61 64 28 | 64 65 63 76 2c 20 6e 61 |CRCRead(|decv, na|
|000036b0| 6d 65 2b 31 2c 20 2a 6e | 61 6d 65 29 3b 0d 09 69 |me+1, *n|ame);..i|
|000036c0| 66 20 28 65 72 72 20 21 | 3d 20 6e 6f 45 72 72 29 |f (err !|= noErr)|
|000036d0| 20 67 6f 74 6f 20 62 61 | 69 6c 3b 0d 09 65 72 72 | goto ba|il;..err|
|000036e0| 20 3d 20 43 52 43 52 65 | 61 64 28 64 65 63 76 2c | = CRCRe|ad(decv,|
|000036f0| 20 26 7a 65 72 6f 2c 20 | 31 29 3b 0d 09 69 66 20 | &zero, |1);..if |
|00003700| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |(err != |noErr) g|
|00003710| 6f 74 6f 20 62 61 69 6c | 3b 0d 09 65 72 72 20 3d |oto bail|;..err =|
|00003720| 20 43 52 43 52 65 61 64 | 28 64 65 63 76 2c 20 26 | CRCRead|(decv, &|
|00003730| 69 6e 66 6f 2c 20 31 30 | 29 3b 0d 09 69 66 20 28 |info, 10|);..if (|
|00003740| 65 72 72 20 21 3d 20 6e | 6f 45 72 72 29 20 67 6f |err != n|oErr) go|
|00003750| 74 6f 20 62 61 69 6c 3b | 0d 09 65 72 72 20 3d 20 |to bail;|..err = |
|00003760| 43 52 43 52 65 61 64 28 | 64 65 63 76 2c 20 26 64 |CRCRead(|decv, &d|
|00003770| 61 74 61 5f 6c 65 6e 67 | 74 68 2c 20 34 29 3b 0d |ata_leng|th, 4);.|
|00003780| 09 69 66 20 28 65 72 72 | 20 21 3d 20 6e 6f 45 72 |.if (err| != noEr|
|00003790| 72 29 20 67 6f 74 6f 20 | 62 61 69 6c 3b 0d 09 65 |r) goto |bail;..e|
|000037a0| 72 72 20 3d 20 43 52 43 | 52 65 61 64 28 64 65 63 |rr = CRC|Read(dec|
|000037b0| 76 2c 20 26 72 73 72 63 | 5f 6c 65 6e 67 74 68 2c |v, &rsrc|_length,|
|000037c0| 20 34 29 3b 0d 09 69 66 | 20 28 65 72 72 20 21 3d | 4);..if| (err !=|
|000037d0| 20 6e 6f 45 72 72 29 20 | 67 6f 74 6f 20 62 61 69 | noErr) |goto bai|
|000037e0| 6c 3b 0d 09 65 72 72 20 | 3d 20 43 52 43 52 65 61 |l;..err |= CRCRea|
|000037f0| 64 45 6e 64 28 64 65 63 | 76 29 3b 0d 09 69 66 20 |dEnd(dec|v);..if |
|00003800| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |(err != |noErr) g|
|00003810| 6f 74 6f 20 62 61 69 6c | 3b 0d 09 0d 20 20 09 09 |oto bail|;... ..|
|00003820| 2f 2a 20 63 72 65 61 74 | 65 20 64 65 73 74 69 6e |/* creat|e destin|
|00003830| 61 74 69 6f 6e 20 66 69 | 6c 65 20 2a 2f 0d 09 69 |ation fi|le */..i|
|00003840| 66 20 28 66 6e 61 6d 65 | 20 21 3d 20 4e 55 4c 4c |f (fname| != NULL|
|00003850| 29 20 7b 0d 09 09 65 72 | 72 20 3d 20 66 6e 61 6d |) {...er|r = fnam|
|00003860| 65 28 6e 61 6d 65 2c 20 | 26 76 6f 6c 2c 20 26 64 |e(name, |&vol, &d|
|00003870| 69 72 2c 20 72 65 66 63 | 6f 6e 29 3b 0d 09 09 69 |ir, refc|on);...i|
|00003880| 66 20 28 65 72 72 20 21 | 3d 20 6e 6f 45 72 72 29 |f (err !|= noErr)|
|00003890| 20 67 6f 74 6f 20 62 61 | 69 6c 3b 0d 09 7d 0d 09 | goto ba|il;..}..|
|000038a0| 69 66 20 28 63 61 6e 5f | 72 65 70 6c 61 63 65 29 |if (can_|replace)|
|000038b0| 20 7b 0d 09 09 65 72 72 | 20 3d 20 48 44 65 6c 65 | {...err| = HDele|
|000038c0| 74 65 28 76 6f 6c 2c 20 | 64 69 72 2c 20 6e 61 6d |te(vol, |dir, nam|
|000038d0| 65 29 3b 0d 09 09 69 66 | 20 28 65 72 72 20 3d 3d |e);...if| (err ==|
|000038e0| 20 66 6e 66 45 72 72 29 | 20 65 72 72 20 3d 20 6e | fnfErr)| err = n|
|000038f0| 6f 45 72 72 3b 0d 09 09 | 69 66 20 28 65 72 72 20 |oErr;...|if (err |
|00003900| 21 3d 20 6e 6f 45 72 72 | 29 20 67 6f 74 6f 20 62 |!= noErr|) goto b|
|00003910| 61 69 6c 3b 0d 09 7d 0d | 09 65 72 72 20 3d 20 48 |ail;..}.|.err = H|
|00003920| 43 72 65 61 74 65 28 76 | 6f 6c 2c 20 64 69 72 2c |Create(v|ol, dir,|
|00003930| 20 6e 61 6d 65 2c 20 69 | 6e 66 6f 2e 66 64 43 72 | name, i|nfo.fdCr|
|00003940| 65 61 74 6f 72 2c 20 69 | 6e 66 6f 2e 66 64 54 79 |eator, i|nfo.fdTy|
|00003950| 70 65 29 3b 0d 09 69 66 | 20 28 65 72 72 20 21 3d |pe);..if| (err !=|
|00003960| 20 6e 6f 45 72 72 29 20 | 67 6f 74 6f 20 62 61 69 | noErr) |goto bai|
|00003970| 6c 3b 0d 09 66 69 6c 65 | 5f 65 78 69 73 74 73 20 |l;..file|_exists |
|00003980| 3d 20 74 72 75 65 3b 0d | 09 65 72 72 20 3d 20 48 |= true;.|.err = H|
|00003990| 47 65 74 46 49 6e 66 6f | 28 76 6f 6c 2c 20 64 69 |GetFInfo|(vol, di|
|000039a0| 72 2c 20 6e 61 6d 65 2c | 20 26 74 69 6e 66 6f 29 |r, name,| &tinfo)|
|000039b0| 3b 0d 09 69 66 20 28 65 | 72 72 20 21 3d 20 6e 6f |;..if (e|rr != no|
|000039c0| 45 72 72 29 20 67 6f 74 | 6f 20 62 61 69 6c 3b 0d |Err) got|o bail;.|
|000039d0| 09 74 69 6e 66 6f 2e 66 | 64 46 6c 61 67 73 20 3d |.tinfo.f|dFlags =|
|000039e0| 20 69 6e 66 6f 2e 66 64 | 46 6c 61 67 73 20 26 20 | info.fd|Flags & |
|000039f0| 28 7e 6b 48 61 73 42 65 | 65 6e 49 6e 69 74 65 64 |(~kHasBe|enInited|
|00003a00| 29 3b 0d 09 65 72 72 20 | 3d 20 48 53 65 74 46 49 |);..err |= HSetFI|
|00003a10| 6e 66 6f 28 76 6f 6c 2c | 20 64 69 72 2c 20 6e 61 |nfo(vol,| dir, na|
|00003a20| 6d 65 2c 20 26 74 69 6e | 66 6f 29 3b 0d 09 69 66 |me, &tin|fo);..if|
|00003a30| 20 28 65 72 72 20 21 3d | 20 6e 6f 45 72 72 29 20 | (err !=| noErr) |
|00003a40| 67 6f 74 6f 20 62 61 69 | 6c 3b 0d 0d 09 09 2f 2a |goto bai|l;..../*|
|00003a50| 20 66 69 6c 65 20 64 61 | 74 61 20 66 6f 72 6b 20 | file da|ta fork |
|00003a60| 2a 2f 0d 09 65 72 72 20 | 3d 20 43 52 43 52 65 61 |*/..err |= CRCRea|
|00003a70| 64 49 6e 69 74 28 64 65 | 63 76 29 3b 0d 09 69 66 |dInit(de|cv);..if|
|00003a80| 20 28 65 72 72 20 21 3d | 20 6e 6f 45 72 72 29 20 | (err !=| noErr) |
|00003a90| 67 6f 74 6f 20 62 61 69 | 6c 3b 0d 09 65 72 72 20 |goto bai|l;..err |
|00003aa0| 3d 20 48 4f 70 65 6e 44 | 46 28 76 6f 6c 2c 20 64 |= HOpenD|F(vol, d|
|00003ab0| 69 72 2c 20 6e 61 6d 65 | 2c 20 66 73 52 64 57 72 |ir, name|, fsRdWr|
|00003ac0| 50 65 72 6d 2c 20 26 72 | 65 66 6e 75 6d 29 3b 0d |Perm, &r|efnum);.|
|00003ad0| 09 69 66 20 28 65 72 72 | 20 21 3d 20 6e 6f 45 72 |.if (err| != noEr|
|00003ae0| 72 29 20 67 6f 74 6f 20 | 62 61 69 6c 3b 0d 09 66 |r) goto |bail;..f|
|00003af0| 6f 72 20 28 62 79 74 65 | 63 6f 75 6e 74 20 3d 20 |or (byte|count = |
|00003b00| 30 3b 20 62 79 74 65 63 | 6f 75 6e 74 20 3c 20 64 |0; bytec|ount < d|
|00003b10| 61 74 61 5f 6c 65 6e 67 | 74 68 3b 20 62 79 74 65 |ata_leng|th; byte|
|00003b20| 63 6f 75 6e 74 20 2b 3d | 20 61 63 74 63 6f 75 6e |count +=| actcoun|
|00003b30| 74 29 20 7b 0d 09 09 61 | 63 74 63 6f 75 6e 74 20 |t) {...a|ctcount |
|00003b40| 3d 20 64 61 74 61 5f 6c | 65 6e 67 74 68 20 2d 20 |= data_l|ength - |
|00003b50| 62 79 74 65 63 6f 75 6e | 74 3b 0d 09 09 69 66 20 |bytecoun|t;...if |
|00003b60| 28 61 63 74 63 6f 75 6e | 74 20 3e 20 73 69 7a 65 |(actcoun|t > size|
|00003b70| 6f 66 28 64 65 63 76 2d | 3e 66 4f 75 74 42 75 66 |of(decv-|>fOutBuf|
|00003b80| 66 65 72 29 29 20 61 63 | 74 63 6f 75 6e 74 20 3d |fer)) ac|tcount =|
|00003b90| 20 73 69 7a 65 6f 66 28 | 64 65 63 76 2d 3e 66 4f | sizeof(|decv->fO|
|00003ba0| 75 74 42 75 66 66 65 72 | 29 3b 0d 09 09 65 72 72 |utBuffer|);...err|
|00003bb0| 20 3d 20 43 52 43 52 65 | 61 64 28 64 65 63 76 2c | = CRCRe|ad(decv,|
|00003bc0| 20 64 65 63 76 2d 3e 66 | 4f 75 74 42 75 66 66 65 | decv->f|OutBuffe|
|00003bd0| 72 2c 20 61 63 74 63 6f | 75 6e 74 29 3b 0d 09 09 |r, actco|unt);...|
|00003be0| 69 66 20 28 65 72 72 20 | 21 3d 20 6e 6f 45 72 72 |if (err |!= noErr|
|00003bf0| 29 20 67 6f 74 6f 20 62 | 61 69 6c 3b 0d 09 09 65 |) goto b|ail;...e|
|00003c00| 72 72 20 3d 20 46 53 57 | 72 69 74 65 28 72 65 66 |rr = FSW|rite(ref|
|00003c10| 6e 75 6d 2c 20 26 61 63 | 74 63 6f 75 6e 74 2c 20 |num, &ac|tcount, |
|00003c20| 64 65 63 76 2d 3e 66 4f | 75 74 42 75 66 66 65 72 |decv->fO|utBuffer|
|00003c30| 29 3b 0d 09 09 69 66 20 | 28 65 72 72 20 21 3d 20 |);...if |(err != |
|00003c40| 6e 6f 45 72 72 29 20 67 | 6f 74 6f 20 62 61 69 6c |noErr) g|oto bail|
|00003c50| 3b 0d 09 7d 0d 09 46 53 | 43 6c 6f 73 65 28 72 65 |;..}..FS|Close(re|
|00003c60| 66 6e 75 6d 29 3b 20 72 | 65 66 6e 75 6d 20 3d 20 |fnum); r|efnum = |
|00003c70| 30 3b 0d 09 65 72 72 20 | 3d 20 43 52 43 52 65 61 |0;..err |= CRCRea|
|00003c80| 64 45 6e 64 28 64 65 63 | 76 29 3b 0d 09 69 66 20 |dEnd(dec|v);..if |
|00003c90| 28 65 72 72 20 21 3d 20 | 6e 6f 45 72 72 29 20 67 |(err != |noErr) g|
|00003ca0| 6f 74 6f 20 62 61 69 6c | 3b 0d 0d 09 09 2f 2a 20 |oto bail|;..../* |
|00003cb0| 66 69 6c 65 20 72 65 73 | 6f 75 72 63 65 20 66 6f |file res|ource fo|
|00003cc0| 72 6b 20 2a 2f 0d 09 65 | 72 72 20 3d 20 43 52 43 |rk */..e|rr = CRC|
|00003cd0| 52 65 61 64 49 6e 69 74 | 28 64 65 63 76 29 3b 0d |ReadInit|(decv);.|
|00003ce0| 09 69 66 20 28 65 72 72 | 20 21 3d 20 6e 6f 45 72 |.if (err| != noEr|
|00003cf0| 72 29 20 67 6f 74 6f 20 | 62 61 69 6c 3b 0d 09 65 |r) goto |bail;..e|
|00003d00| 72 72 20 3d 20 48 4f 70 | 65 6e 52 46 28 76 6f 6c |rr = HOp|enRF(vol|
|00003d10| 2c 20 64 69 72 2c 20 6e | 61 6d 65 2c 20 66 73 52 |, dir, n|ame, fsR|
|00003d20| 64 57 72 50 65 72 6d 2c | 20 26 72 65 66 6e 75 6d |dWrPerm,| &refnum|
|00003d30| 29 3b 0d 09 69 66 20 28 | 65 72 72 20 21 3d 20 6e |);..if (|err != n|
|00003d40| 6f 45 72 72 29 20 67 6f | 74 6f 20 62 61 69 6c 3b |oErr) go|to bail;|
|00003d50| 0d 09 66 6f 72 20 28 62 | 79 74 65 63 6f 75 6e 74 |..for (b|ytecount|
|00003d60| 20 3d 20 30 3b 20 62 79 | 74 65 63 6f 75 6e 74 20 | = 0; by|tecount |
|00003d70| 3c 20 72 73 72 63 5f 6c | 65 6e 67 74 68 3b 20 62 |< rsrc_l|ength; b|
|00003d80| 79 74 65 63 6f 75 6e 74 | 20 2b 3d 20 61 63 74 63 |ytecount| += actc|
|00003d90| 6f 75 6e 74 29 20 7b 0d | 09 09 61 63 74 63 6f 75 |ount) {.|..actcou|
|00003da0| 6e 74 20 3d 20 72 73 72 | 63 5f 6c 65 6e 67 74 68 |nt = rsr|c_length|
|00003db0| 20 2d 20 62 79 74 65 63 | 6f 75 6e 74 3b 0d 09 09 | - bytec|ount;...|
|00003dc0| 69 66 20 28 61 63 74 63 | 6f 75 6e 74 20 3e 20 73 |if (actc|ount > s|
|00003dd0| 69 7a 65 6f 66 28 64 65 | 63 76 2d 3e 66 4f 75 74 |izeof(de|cv->fOut|
|00003de0| 42 75 66 66 65 72 29 29 | 20 61 63 74 63 6f 75 6e |Buffer))| actcoun|
|00003df0| 74 20 3d 20 73 69 7a 65 | 6f 66 28 64 65 63 76 2d |t = size|of(decv-|
|00003e00| 3e 66 4f 75 74 42 75 66 | 66 65 72 29 3b 0d 09 09 |>fOutBuf|fer);...|
|00003e10| 65 72 72 20 3d 20 43 52 | 43 52 65 61 64 28 64 65 |err = CR|CRead(de|
|00003e20| 63 76 2c 20 64 65 63 76 | 2d 3e 66 4f 75 74 42 75 |cv, decv|->fOutBu|
|00003e30| 66 66 65 72 2c 20 61 63 | 74 63 6f 75 6e 74 29 3b |ffer, ac|tcount);|
|00003e40| 0d 09 09 69 66 20 28 65 | 72 72 20 21 3d 20 6e 6f |...if (e|rr != no|
|00003e50| 45 72 72 29 20 67 6f 74 | 6f 20 62 61 69 6c 3b 0d |Err) got|o bail;.|
|00003e60| 09 09 65 72 72 20 3d 20 | 46 53 57 72 69 74 65 28 |..err = |FSWrite(|
|00003e70| 72 65 66 6e 75 6d 2c 20 | 26 61 63 74 63 6f 75 6e |refnum, |&actcoun|
|00003e80| 74 2c 20 64 65 63 76 2d | 3e 66 4f 75 74 42 75 66 |t, decv-|>fOutBuf|
|00003e90| 66 65 72 29 3b 0d 09 09 | 69 66 20 28 65 72 72 20 |fer);...|if (err |
|00003ea0| 21 3d 20 6e 6f 45 72 72 | 29 20 67 6f 74 6f 20 62 |!= noErr|) goto b|
|00003eb0| 61 69 6c 3b 0d 09 7d 0d | 09 46 53 43 6c 6f 73 65 |ail;..}.|.FSClose|
|00003ec0| 28 72 65 66 6e 75 6d 29 | 3b 20 72 65 66 6e 75 6d |(refnum)|; refnum|
|00003ed0| 20 3d 20 30 3b 0d 09 65 | 72 72 20 3d 20 43 52 43 | = 0;..e|rr = CRC|
|00003ee0| 52 65 61 64 45 6e 64 28 | 64 65 63 76 29 3b 0d 09 |ReadEnd(|decv);..|
|00003ef0| 69 66 20 28 65 72 72 20 | 21 3d 20 6e 6f 45 72 72 |if (err |!= noErr|
|00003f00| 29 20 67 6f 74 6f 20 62 | 61 69 6c 3b 0d 0d 09 44 |) goto b|ail;...D|
|00003f10| 69 73 70 6f 73 65 50 74 | 72 28 28 50 74 72 29 20 |isposePt|r((Ptr) |
|00003f20| 64 65 63 76 29 3b 0d 09 | 72 65 74 75 72 6e 20 6e |decv);..|return n|
|00003f30| 6f 45 72 72 3b 0d 09 0d | 62 61 69 6c 3a 0d 09 69 |oErr;...|bail:..i|
|00003f40| 66 20 28 72 65 66 6e 75 | 6d 20 21 3d 20 30 29 20 |f (refnu|m != 0) |
|00003f50| 46 53 43 6c 6f 73 65 28 | 72 65 66 6e 75 6d 29 3b |FSClose(|refnum);|
|00003f60| 0d 09 69 66 20 28 66 69 | 6c 65 5f 65 78 69 73 74 |..if (fi|le_exist|
|00003f70| 73 29 20 48 44 65 6c 65 | 74 65 28 76 6f 6c 2c 20 |s) HDele|te(vol, |
|00003f80| 64 69 72 2c 20 6e 61 6d | 65 29 3b 0d 09 69 66 20 |dir, nam|e);..if |
|00003f90| 28 64 65 63 76 20 21 3d | 20 4e 55 4c 4c 29 20 44 |(decv !=| NULL) D|
|00003fa0| 69 73 70 6f 73 65 50 74 | 72 28 28 50 74 72 29 20 |isposePt|r((Ptr) |
|00003fb0| 64 65 63 76 29 3b 0d 09 | 72 65 74 75 72 6e 20 65 |decv);..|return e|
|00003fc0| 72 72 3b 0d 7d 0d 0d 0d | 2f 2a 20 65 6e 64 20 6f |rr;.}...|/* end o|
|00003fd0| 66 20 66 69 6c 65 20 68 | 71 78 2e 63 20 2a 2f 0d |f file h|qx.c */.|
|00003fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004000| 00 00 01 00 00 00 01 6e | 00 00 00 6e 00 00 00 3e |.......n|...n...>|
|00004010| 00 00 61 3c 00 4f 05 4f | 62 6a 2e 63 73 2e 70 70 |..a<.O.O|bj.cs.pp|
|00004020| 63 70 6e 00 ff ff ff ff | ff ff ff ff 06 00 00 00 |cpn.....|........|
|00004030| 05 68 71 78 2e 63 02 00 | 00 00 54 45 58 54 4d 50 |.hqx.c..|..TEXTMP|
|00004040| 53 20 01 00 ff ff ff ff | 00 00 00 00 39 e1 00 00 |S ......|....9...|
|00004050| 00 00 54 45 58 54 4d 50 | 53 20 01 00 ff ff ff ff |..TEXTMP|S ......|
|00004060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004070| 00 00 ae bb a2 ff 00 00 | 3f 60 00 00 01 ac ff ff |........|?`......|
|00004080| ff ff ff ff ff ff 06 00 | 00 00 61 47 00 51 08 51 |........|..aG.Q.Q|
|00004090| 75 65 75 65 2e 63 70 70 | 63 70 6e 00 ff ff ff ff |ueue.cpp|cpn.....|
|000040a0| ff ff ff ff 06 00 00 00 | 61 4d 00 52 08 52 65 64 |........|aM.R.Red|
|000040b0| 75 63 65 2e 63 68 63 6f | 67 00 ff ff ff ff ff ff |uce.chco|g.......|
|000040c0| ff ff 06 00 00 00 61 50 | 00 72 06 72 65 76 2e 63 |......aP|.r.rev.c|
|000040d0| 70 74 31 2e 63 70 00 00 | ff ff ff ff ff ff ff ff |pt1.cp..|........|
|000040e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000040f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004100| 00 00 00 48 00 09 47 65 | 6e 65 76 61 00 21 00 2c |...H..Ge|neva.!.,|
|00004110| 03 df b8 60 ff fc 00 27 | ff f4 00 28 ff ef 00 30 |...`...'|...(...0|
|00004120| ff e9 00 3c ff e0 00 03 | 00 08 00 57 00 66 02 ec |...<....|...W.f..|
|00004130| 02 80 00 57 00 66 02 ec | 02 80 b0 5f 54 08 00 00 |...W.f..|..._T...|
|00004140| 02 5b 00 00 02 5b 00 00 | 00 00 01 00 00 00 00 1e |.[...[..|........|
|00004150| 00 57 00 66 02 ec 02 80 | 00 57 00 66 02 ec 02 80 |.W.f....|.W.f....|
|00004160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004170| 01 00 00 00 01 6e 00 00 | 00 6e 00 00 00 3e 03 d6 |.....n..|.n...>..|
|00004180| 71 38 26 32 00 00 00 1c | 00 3e 00 00 4d 50 53 52 |q8&2....|.>..MPSR|
|00004190| 00 01 00 0a 03 ed ff ff | 00 00 00 00 00 00 00 00 |........|........|
|000041a0| 03 f0 ff ff 00 00 00 4c | 03 d7 c9 f8 00 00 00 00 |.......L|........|
|000041b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000041c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000041d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000041e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000041f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+